我有一个 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/