我试图断言响应主体是否为空,但是出现了错误:
var api = supertest(TEST_URL);
...
api.get('..')
.expect('Content-Type', /json/)
.end(function (err, res) {
if (err) {
return done(err);
}
res.should.have.status(200);
// Uncaught AssertionError: expected {} to have a property 'length'
// res.body.should.empty;
// Workaround should be used
res.text.should.eql('{}');
出了什么问题?我该如何解决这个问题?
答案 0 :(得分:1)
.empty
中的{p> should.js
断言检查字符串,参数,数组只是长度属性。因此,如果它抛出关于缺失长度的断言 - 你的身体看起来没有解析为json(你需要确保你像Content-Type
一样向右回application/json
)。
对于对象,是.empty
将检查是否缺少任何可枚举的属性。
$ node
> var should = require('should')
undefined
> var res = { body: {} };
undefined
> res.body.should.be.empty
{ obj: {},
params: { operator: 'to be empty' },
negate: false }
>