2

我正在处理将变成一个相当大node.js的 javascript 应用程序的东西,并开始考虑如何组织我的测试。
该应用程序基本上是一个 REST API,因此请求经过身份验证,用户提交的数据经过验证,然后保存在数据库中。

我完全不熟悉如何组织这种规模的项目的测试。

我是否应该从模块化单元测试开始单独测试每个资源,以全面集成测试结束?
或者我应该逐层测试 - 即为每个资源分别进行身份验证、验证、持久性和集成?

什么是常识?

4

1 回答 1

3

测试方法没有对错之分。重要的是进行有意义的测试以增加价值。有一些测试总比什么都没有好。

我的方法是为我正在处理的东西编写测试,而不区分单元测试和集成测试。因此,如果我正在开发 REST 服务,那么我将为 REST 服务编写测试。如果我正在研究身份验证和持久性,那么我将为身份验证和持久性编写测试。

编写还设置和管理测试所需的测试数据的测试也很重要。这很重要,这样任何人都可以执行您的测试。同样重要的是,您的测试可以在开箱即用的持续集成环境中执行。

测试您修复的每个缺陷

如果正在处理缺陷,那么我将编写失败的测试,即重现缺陷,然后在我的代码修复后验证我的测试是否通过。在我看来,这是最重要的事情。由于这些测试验证了问题一旦修复就会保持不变。

重构代码

当您进行一些代码重构时,您编写的所有测试的价值都会变得很方便。如果您的重构代码未能通过现有测试,那么您的重构代码就会损坏,需要修复,直到所有现有测试都通过。

当你没有时间

如果您由于时间不足或其他原因必须在测试类型之间进行选择,那么编写更广泛的测试或端到端测试或集成测试会带来最大的价值,因为这些测试直接或间接地执行身份验证、持久性等. 将此与用于持久性的单元测试进行比较,您可以从集成测试中获得更多收益,因为集成测试将间接测试您的持久性。

于 2012-10-10T20:26:25.993 回答