node.js - 使用 Mocha 进行 Express 测试失败

标签 node.js express mocha.js supertest

我有一个 Express 服务器,我正在尝试使用 SuperTest 进行测试。下面的测试没有通过,我不知道为什么。

我看到响应的状态为 200(在 res.status.should.equal(200) 中放置断点)。为什么我的 Mocha 测试仍然被标记为失败?

it('Should test invoke user method', function (done) {
  supertest(app)
    .post('/save/test1/test2/test3')
    .expect(200)
    .end(function (err, res) {
      res.status.should.equal(200);
      done();
    });
});

最佳答案

您的输出应该能够准确地告诉您收到的内容。

您还可以使用 https://www.getpostman.com/ 手动测试(现在他们正在维护,但应该很快就会恢复),这对开发有很大帮助,如果你正在进行 api 测试,你也可能会对 https://github.com/apiaryio/dredd 感兴趣。 ,这完全改变了我的工作流程

编辑:

  • Postman:一个 REST 客户端,它是 chrome/FF 插件,您可以使用它来进行调用并轻松查看响应是什么样的(您可以使用curl 和 wget,但 postman 很容易,特别是当您需要使用 header 时)

  • Dredd:理论上可以验证您的蓝图/文档以查看其是否与您的服务器同步的工具,实际上您可以进行红绿灯开发,首先拥有 api 的所有蓝图,然后使所有测试通过,这样做的好处是您可以实际看到服务器响应的 json/任何其他内容以及它与您的代码有何不同

关于node.js - 使用 Mocha 进行 Express 测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31903367/

相关文章:

node.js - 使用 Azure Key Vault 或 JWT 时,设置和检索/解密元数据的正确设计是什么。 1 对多还是 1 对 1 键?

node.js - 将中间件添加到单个路由 Js Express 的最简洁方法

javascript - 从下拉列表中选择选项并使用 nodejs 提交请求

javascript - 每次 Karma 测试后如何清理?

node.js - 运行 mocha 时如何将特定的测试文件设置为第一个?

node.js - 如何在 React 中正确调用 fetch api?

javascript - 如何使用 Node JS 重定向?

javascript - 我可以对目录中的任何文件使用什么快速路由?

javascript - 如何屏蔽所有欧洲IP地址?

javascript - 在 mocha post 函数上为 %s 赋值