我正在为Express.js应用程序编写测试,我不知道如何在单元测试和集成测试之间进行选择. 目前我尝试过: 单元测试 – 使用Sinon进行存根/模拟/间谍,使用Inject进行模块的依赖注入.用这种方
目前我尝试过:
单元测试 – 使用Sinon进行存根/模拟/间谍,使用Inject进行模块的依赖注入.用这种方法我必须存根MongoDB和其他外部方法.
我考虑过对单个路由进行单元测试,然后使用集成测试来验证是否实际调用了正确的路由.
集成测试 – 使用Supertest和Superagent,编写更少的代码(不需要模拟/存根任何东西),但应该存在测试环境(数据库等……)
我正在使用Mocha来运行两种测试方式.
我应该如何选择这两种不同的方法?
你应该两个都做.单元测试每个执行非平凡工作的非辅助方法.通过一些集成测试来运行整个过程.如果你发现自己不得不做吨,吨和吨的模拟和存根,这可能是重构的标志.