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