node中的.done()和.end()函数有什么区别,什么时候使用?

问题描述 投票:0回答:1

我想了解一下.done()和.end()函数的使用情况。end() 函数,而用mocha和 Chai编写API测试脚本。同时,我也很困惑,我是否应该使用 done() 的功能是否在这里,也有什么具体的区别。.end().done().

这是代码。

describe("Suite", () => {
    it('Post Test case', (done) => {
        request('https://reqres.in')
        .post('/api/users')
        .send({
            "name": "morpheus",
            "job": "leader"
        })
        .set('Accept', 'application/json')
        .expect(200,'Content-Type', /json/)
        .then((err,res) => {
            console.log(JSON.stringify(err))
            console.log(JSON.stringify(res.body))
            console.log(JSON.stringify("           "))

        })
        done();
    });
    it('Put Test case', (done) => {
        request('https://reqres.in')
        .put('/api/users/2')
        .send({
            "name": "morpheus",
            "job": "zion residents"
        })
        .expect(200)
        .end((err, res) => {
            console.log(JSON.stringify(err))
            console.log(JSON.stringify(res.body))
            console.log(JSON.stringify("           "))

        })
        done();
    })
})
node.js api callback mocha supertest
1个回答
1
投票

你把事情搞混了。

end 是一个方法的 expressjs框架 而它 末端 的服务器响应。

done 的参数。摩卡测试功能. 当你完成你的 异步 检验,让 mocha 知道你的异步代码已经完成执行,它可以继续进行另一个测试。

而在你的情况下,你需要这两者。

© www.soinside.com 2019 - 2024. All rights reserved.