Skip to main content

最小准备数据原则

什么是最小准备数据原则

在准备数据的时候,只提供该单元测试 Case 需要用到的数据。

数据越少,测试 Case 越容易阅读。 违背该原则,将降低代码可维护性和可读性,徒增心智负担。

单元测试是业务代码的用户之一。

所以单元测试可以驱动业务代码写得更好。

单元测试本身很注重简洁性和可读性。

单元测试本身也是代码,本身也需要维护。 如果维护测试代码比维护业务代码还要花费更多时间,那你还会去写测试吗?

工厂函数

通过工厂函数,来隐藏一些默认属性等,以提高代码干净程度和可读性。

const user = new User("Nansen", 18, "my-profile.com", "Tokyo");
const user = createUser("Nansen"); // 比上面代码干净很多

// 工厂函数
function createUser(name) {
return new User(name, 18, "my-profile.com", "Tokyo");
}

虚拟对象

我们可以创建一个假的对象。

const product = new Product("Book", 1, "A good book");
// 虚拟对象
const product = { name: "Book" } as Product; // 比上面代码简单易读

因为最终被使用到的只有 product.name 属性,所以虚拟对象里只模拟了这一个属性。