gpt4 book ai didi

node.js - supertest .expect(function(res) {}) 如果测试正常返回什么

转载 作者:太空宇宙 更新时间:2023-11-04 02:48:28 25 4
gpt4 key购买 nike

如果使用 mocha 和 supertest 进行测试:

describe('GET /v1/news/5339a146d46d35ebe953030a --test', function(){
it('respond with json', function(done){
request(app)
.get('/v1/news/5339a146d46d35ebe953030a')
.set('Accept', 'application/*')
.set('DEV-ROLE', 'test')
.expect('Content-Type', /json/)
.send(json)
.expect(200)
.expect(function(res) {
//THIS FUNCTION RESULT IN A TIMEOUT IF NO ERROR IS THROWN
if(!('item' in res.body)) throw new Error("missing item key");
})
.end(function(err, res){
if (err) return done(err);
done()

});

})
})

我想测试结果体,但我总是超时。如果发生错误,我可以抛出错误,那很好。但是,如果没有发生错误,如果我不返回任何内容(如文档中所述),我就会遇到超时:

Pass a custom assertion function. It'll be given the response object to check. If the response is ok, it should return falsy, most commonly by not returning anything. If the check fails, throw an error or return a truthy value like a string that'll be turned into an error

文档中的示例:

  request(app)
.get('/')
.expect(hasPreviousAndNextKeys)
.end(done);

function hasPreviousAndNextKeys(res) {
if (!('next' in res.body)) return "missing next key";
if (!('prev' in res.body)) throw new Error("missing prev key");
}

我使用0.12.1版本

最佳答案

等待0.13.0版本解决了这个问题。现在可以了。

关于node.js - supertest .expect(function(res) {}) 如果测试正常返回什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23594859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com