我对使用mongoose对Express REST API进行单元测试感到困惑 . 我听说过supertest,sinon,chai和mocha .
我想写测试:
1)测试API接口:
创建一个超级服务器并在其上发出请求(例如GET / users,POST / users)并检查它是否调用了正确的路由 .
2)测试mongoose查询:
当一个路由被调用时,我想检查是否调用了正确的mongoose函数(find,findById)并且它返回了正确的数据(伪数据),如:
当调用User.findId时,返回假用户(在beforeEach中定义的数据) . 这是什么sinon存根是为了什么?
3)集成测试:创建测试数据库(在测试运行时创建),填写并在测试完成后清理它 . 在超级服务器上进行API调用(GET用户,PUT用户/ 1202082,删除用户/ 1202082 ......)并检查是否正在读取,创建,更新,删除正确的数据......
这是要走的路吗?每个案例的简单例子都会很好!
1 回答
如果你想要的是某个Mongoose模型的测试
static's
和method's
,我建议你使用sinon和sinon-mongoose . (我猜它与chai兼容)这样,您就不需要连接到Mongo DB并轻松返回虚假数据 .
您可以在sinon-mongoose repo上找到工作(和简单)示例 .