用Unit/Integration测试来测试Express REST API,使用mongoose、mocha、sinon、chai和supertest。

4
我对使用mongoose测试Express REST API感到困惑。 我听说过supertest、sinon、chai和mocha等工具。
我希望编写以下测试:
1)测试API接口:
创建一个supertest服务器并在其上进行请求(例如GET /users,POST /users),检查是否调用了正确的路由。
2)测试mongoose查询:
当调用路由时,我想检查是否调用了正确的mongoose函数(find、findById)并且返回了正确的数据(假数据),类似于:
当调用User.findId时,返回假用户(在beforeEach中定义的数据)。 这是sinon stubs的用途吗?
3)集成测试:
创建一个测试数据库(在测试运行期间创建),填充它并在测试完成时清理它。 在supertest服务器上进行API调用(GET users,PUT users/1202082,DELETE users/1202082...),检查是否读取、创建、更新、删除了正确的数据...
这是正确的方法吗? 每种情况的简单示例会很好!
1个回答

1
如果你想测试某个Mongoose模型的静态变量和方法,我建议你使用sinonsinon-mongoose。(我猜它与chai兼容)
这样,你就不需要连接Mongo DB并轻松返回虚假数据。
sinon-mongoose存储库中,你可以找到可工作(且简单)的示例。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接