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