Skip to main content

编写第一个单元测试

编写单元测试的四步

Steps
准备数据givenArrange
调用要测试的功能/函数whenAct
验证功能的 outputthenAssert
拆卸

第一步和第四步不一定需要。

  1. 比如测试 getName,就不需要准备数据这一步;

  2. 比如不涉及全局的数据,那就用不到拆卸这一步。

    测试中,可能处理了一些全局的数据和缓存,这些都需要还原一下,这就是拆卸。

但第二、三步一定是需要的。

Arrange => Act => Assert 又称 3A

第一个单元测试

下面示例展示了一个测试由哪几部分组成。

同时,也介绍了一个单元测试专有名词。

import { test, expect } from "vitest";
import { useTodoStore, reset } from "./index";
import { setActivePinia, createPinia } from "pinia";

test("add todo", () => {
// 箭头函数 {} 里的部分被称为 上下文 或 Fixture 夹具。

// 1. 准备数据
setActivePinia(createPinia());
const todoStore = useTodoStore();
const title = "play-plane project coding";

// 2. 调用
// 该部分也被叫做 System Test Unit / STU,
// 即 被测试的系统单元
useTodoStore.addTodo(title);

// 3. 验证
Expect(todoStore.todos[0].title).toBe(title);

// 4. 拆卸
reset();
});