单元测试与Express.js应用程序的集成测试

时间:2013-01-22 18:11:10

标签: node.js express mocha sinon supertest

我正在为Express.js应用程序编写测试,我不知道如何在单元测试和集成测试之间进行选择。

目前我尝试过:

单元测试 - 使用Sinon进行存根/模拟/间谍,使用Inject进行模块的依赖注入。使用这种方法,我必须存根MongoDB和其他外部方法。

我考虑过对单个路由进行单元测试,然后使用集成测试来验证是否实际调用了正确的路由。

集成测试 - 使用Supertest和Superagent,编写更少的代码(不需要模拟/存根任何东西),但应该存在测试环境(数据库等)。

我正在使用Mocha来运行两种测试方式。

我应该如何在这两种不同的方法之间做出选择?

1 个答案:

答案 0 :(得分:1)

你应该两个都做。单元测试每个执行非平凡工作的非辅助方法。通过一些集成测试来运行整个过程。如果你发现自己不得不做吨,吨和吨的模拟和存根,这可能是重构的标志。