API的集成与单元测试

时间:2018-12-07 13:51:41

标签: javascript node.js unit-testing integration-testing chai

我们可以考虑将请求发送到端点单元还是集成测试?

import lib from 'testing-lib';
// ...
const { testClient, expect } = lib;
const response = testClient
    .request(app)
    .get('/test/endpoint/');
// ...

expect(response).fulfills.some.condition.ok

我觉得这是一个集成测试,因为它将确定请求发出和返回响应之间的每个部分都按预期工作。我需要知道我模糊的理解是正确的还是缺少一些细节。

2 个答案:

答案 0 :(得分:3)

是的,这更多是一个集成测试。

单元测试更像是功能业务逻辑测试。例如,您的路由处理程序(控制器)收到请求并调用Service处理逻辑之后。 对该逻辑的测试是单元测试。

集成测试正在检查数据流是否工作正常。

答案 1 :(得分:1)

我都不去。这是一个功能测试。

单元测试测试代码单元。由此得名。代码单元通常是某种功能,类或模块。

集成测试可验证我们的代码单元是否可以按预期工作。但是它仍然只是测试代码。

功能测试通过公开的界面测试处于部署状态的实际软件。

因此,在Node中,单元测试可能是单独测试您的JavaScript模块之一并模拟出依赖关系。集成测试将测试您的模块是否可以协同工作,并且仅模拟出系统的极端情况。功能测试可以测试特定端点是否可以通过HTTP运行并且不会模拟任何东西。

我还要补充一点,在编写测试时,我鼓励坚持DRY原则。如果您具有可验证事物的单元测试,则无需在集成测试中对其进行验证。只需验证各单元是否按预期工作即可。与功能测试相同。不要验证集成,即各单元可以协同工作。验证端点是否映射到预期的行为。