编写第一个单元测试
编写单元测试的四步
Steps | ||
---|---|---|
准备数据 | given | Arrange |
调用要测试的功能/函数 | when | Act |
验证功能的 output | then | Assert |
拆卸 |
第一步和第四步不一定需要。
-
比如测试
getName
,就不需要准备数据这一步; -
比如不涉及全局的数据,那就用不到拆卸这一步。
测试中,可能处理了一些全局的数据和缓存,这些都需要还原一下,这就是拆卸。
但第二、三步一定是需要的。
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();
});