摩卡的快速测试失败

Failing Express test with Mocha

我有一个 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/ (now they're on mainenance but it should by up again soon), that helps A LOT in development, if you're doing api tests you could also be intrested in https://github.com/apiaryio/dredd 手动测试,这完全改变了我的工作流程

编辑:

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

  • Dredd:理论上可以验证您的 blueprints/documentation 以查看它是否与您的服务器同步的工具,实际上您可以先进行 red-green 轻度开发api 的所有蓝图,然后通过所有测试,这样做的好处是您实际上可以看到服务器响应的 json/anything else 是什么,以及它与您的代码有何不同