我们可以考虑将请求发送到端点单元还是集成测试?
import lib from 'testing-lib';
// ...
const { testClient, expect } = lib;
const response = testClient
.request(app)
.get('/test/endpoint/');
// ...
expect(response).fulfills.some.condition.ok
我觉得这是一个集成测试,因为它将确定请求发出和返回响应之间的每个部分都按预期工作。我需要知道我模糊的理解是正确的还是缺少一些细节。
答案 0 :(得分:3)
是的,这更多是一个集成测试。
单元测试更像是功能业务逻辑测试。例如,您的路由处理程序(控制器)收到请求并调用Service处理逻辑之后。 对该逻辑的测试是单元测试。
集成测试正在检查数据流是否工作正常。
答案 1 :(得分:1)
我都不去。这是一个功能测试。
单元测试测试代码单元。由此得名。代码单元通常是某种功能,类或模块。
集成测试可验证我们的代码单元是否可以按预期工作。但是它仍然只是测试代码。
功能测试通过公开的界面测试处于部署状态的实际软件。
因此,在Node中,单元测试可能是单独测试您的JavaScript模块之一并模拟出依赖关系。集成测试将测试您的模块是否可以协同工作,并且仅模拟出系统的极端情况。功能测试可以测试特定端点是否可以通过HTTP运行并且不会模拟任何东西。
我还要补充一点,在编写测试时,我鼓励坚持DRY原则。如果您具有可验证事物的单元测试,则无需在集成测试中对其进行验证。只需验证各单元是否按预期工作即可。与功能测试相同。不要验证集成,即各单元可以协同工作。验证端点是否映射到预期的行为。