Nock 无法使用相同的方法处理多个测试用例
Nock is not working with multiple test cases with same method
如果我评论第一个测试用例,那么第二个测试就可以正常工作。如果我运行这个测试文件。它给出 400 状态,这是第一个测试用例的状态。我如何 运行 两个测试用例。
我还在 之前添加了以下代码。但是还是不行
after(function () {
nock.cleanAll()
})
account.js
describe("Account", () => {
describe("/PATCH account/changePassword", () => {
before(function(done){
nock(baseUrl)
.persist()
.patch('/account/changePassword')
.reply(400)
done()
// console.log(nock.activeMocks())
})
it("it should give validation error", (done) => {
chai.request(baseUrl)
.patch('/account/changePassword')
.end((err, res) => {
res.should.have.status(400);
done();
});
})
})
//===================== 2nd test case with same method================
describe("/PATCH account/changePassword", () => {
before(function(done){
nock(baseUrl)
.intercept('/account/changePassword','PATCH')
.reply(200,{ data: {"password": "123456"} })
done()
// console.log(nock.activeMocks())
})
it("it should update the password", (done) => {
chai.request(baseUrl)
.patch('/account/changePassword')
.send({"password": "123456"})
.end((err, res) => {
console.log(res);
res.should.have.status(200);
done();
});
})
})
});
您应该使用来自 Mocha 的 afterEach
挂钩。在所有测试 运行 之后,after
仅 运行,因此当第二个测试 运行s.
时,您当前有一个持久化的 Nock 实例
Mocha 文档:https://mochajs.org/#hooks
如果我评论第一个测试用例,那么第二个测试就可以正常工作。如果我运行这个测试文件。它给出 400 状态,这是第一个测试用例的状态。我如何 运行 两个测试用例。
我还在 之前添加了以下代码。但是还是不行
after(function () {
nock.cleanAll()
})
account.js
describe("Account", () => {
describe("/PATCH account/changePassword", () => {
before(function(done){
nock(baseUrl)
.persist()
.patch('/account/changePassword')
.reply(400)
done()
// console.log(nock.activeMocks())
})
it("it should give validation error", (done) => {
chai.request(baseUrl)
.patch('/account/changePassword')
.end((err, res) => {
res.should.have.status(400);
done();
});
})
})
//===================== 2nd test case with same method================
describe("/PATCH account/changePassword", () => {
before(function(done){
nock(baseUrl)
.intercept('/account/changePassword','PATCH')
.reply(200,{ data: {"password": "123456"} })
done()
// console.log(nock.activeMocks())
})
it("it should update the password", (done) => {
chai.request(baseUrl)
.patch('/account/changePassword')
.send({"password": "123456"})
.end((err, res) => {
console.log(res);
res.should.have.status(200);
done();
});
})
})
});
您应该使用来自 Mocha 的 afterEach
挂钩。在所有测试 运行 之后,after
仅 运行,因此当第二个测试 运行s.
Mocha 文档:https://mochajs.org/#hooks