如果用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()
});
})
})
我想测试生成的身体,但我总是在超时运行。 如果发生错误,我可以抛出一个错误,没关系。但是如果没有错误发生,如果我撤回文档中描述的内容,我会遇到超时:
传递自定义断言功能。它将被赋予响应对象 去检查。如果响应是正确的,它应该返回假,最常见 不归还任何东西。如果检查失败,则抛出错误或 返回一个像一个字符串的truthy值,它将变成一个错误
示例im docu:
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 :(得分:-2)
等待版本0.13.0解决了这个问题。现在它有效。