【问题标题】:Unit/Integration testing Express REST API, mongoose, mocha, sinon, chai, supertest单元/集成测试 Express REST API, mongoose, mocha, sinon, chai, supertest
【发布时间】:2015-06-02 19:07:16
【问题描述】:

我对使用 mongoose 对 Express REST API 进行单元测试感到很困惑。 我听说过 supertest、sinon、chai 和 mocha。

我想写测试到:

1) 测试API接口:

创建一个超级测试服务器并在其上发出请求(例如 GET /users、POST /users)并检查它是否调用了正确的路由。

2) 测试猫鼬查询:

当调用路由时,我想检查是否调用了正确的 mongoose 函数(find、findById)以及它是否返回了正确的数据(假数据),例如:

当调用 User.findId 时,返回假用户(在 beforeEach 中定义的数据)。 这是 sinon 存根的用途吗?

3) 集成测试: 创建一个测试数据库(在测试运行时创建),填充它并在测试完成时清理它。 在超测服务器上进行 API 调用(GET 用户、PUT 用户/1202082、DELETE 用户/1202082...),并检查是否读取、创建、更新、删除了正确的数据...

这是要走的路吗? 每个案例的简单示例会非常好!

【问题讨论】:

    标签: node.js mongodb rest unit-testing express


    【解决方案1】:

    如果您想要测试某些猫鼬模型的static'smethod's,我建议您使用sinonsinon-mongoose。 (我猜它与chai兼容)

    这样,您无需连接到 Mongo DB 并轻松返回虚假数据。

    您可以在 sinon-mongoose 存储库中找到工作(和简单)示例。

    【讨论】:

      猜你喜欢
      • 2018-11-05
      • 2023-04-11
      • 2015-03-03
      • 2020-10-11
      • 2019-02-03
      • 2016-09-20
      • 2023-04-09
      • 2015-12-01
      • 2018-04-08
      相关资源
      最近更新 更多