【发布时间】:2021-07-16 06:39:28
【问题描述】:
我一直在尝试为 Nodejs API 编写 Mocha chai 测试。它以前是使用 Supertest 编写的。但是,在这两种情况下,即使我指定了错误的预期参数,测试也总是通过。
这里是使用 chai 的测试函数
const chai = require('chai');
const chaiHttp = require('chai-http');
chai.should();
chai.use(chaiHttp);
const app = require("../app");
const user = {
first_name: "Name",
last_name: "Lastname",
email: "email",
password: "password"
};
describe("Registration Test", () => {
it("Responds with status of registration", (done) => {
chai.request(app)
.post('/register')
.send(user)
.end((err,res) => {
if(err) done(err);
res.should.have.status.eq(200);
res.body.should.have.property('success').eq(true);
done(); <------------ Here it doesn't work. It returns For async tests and hooks, ensure "done()" is called error
});
done(); <----------- But here it works
});
});
API 以带有成功、消息和状态属性的正文进行响应。但无论我在 chai 中写什么检查,测试总是通过。另外,当我添加 done();在 end() 内部,找不到它,但是当我在 end() 外部写它时,它会运行。所以我假设我的代码永远不会进入 .end()。
【问题讨论】:
标签: javascript node.js express mocha.js chai