为什么要写测试
为什么需要单元测试
我们写代码其实都分两步:
- 写代码
- 调试验证
而往往是反复地调试验证,才是最花费时间的一步。
单元测试,就是避免这个重复调试验证的过程。
单元测试的好处
避免重复的手动调试
比如你开发了一个删除人员的功能,
那当我们调试验证的时候,一共需要
- 填写人员相关信息
- 确认信息并添加人员
- 点击删除按钮
- 确认并删除人员
整整四步才可以。
其中但凡一步出了差错,又要从头再来一遍这四步。
这个手动调试的过程每次都是重复的。
如果写测试的话,我们只需要写一遍,之后都可以避免这一遍遍重复的调试。
it("should remove staff", () => {
repository.updateStaff = vi.fn();
const staff = createStaff("Jack");
staffs.add(staff);
removeStaff(staff);
expect(staff.state).toBe(StaffState.REMOVED);
expect(staffs.length).toBe(0);
});
单元测试来替代了手动测试,让测试变成自动化的操作。
这样大大提高了开发效率。
直接调用 Store 层进行功能验证
用手动测试的话,要要通过 UI 层,才能测试到 Store 层。
但单元测试可以直接去调用到 Store 层。
我们在单元测试之前或之后,可以手动去测一遍。 从而验证从 UI 调用 Store 这一层是否有问题。
更方便地定位和修复 bug
手动调试可能就是一步一步打断点 / 打 console.log
,找到问题,之后修复问题。
但如果我们对写了测试的话,就可以直接通过单测来发现问题了。