我是mocha和should.js的新手。我试图检查响应的状态,但它给了我TypeError: Object #<Assertion> has no method 'status'
代码是这样的:
describe('Local signup', function() {
it('should return error trying to save duplicate username', function(done) {
var profile = {
email: 'abcd@abcd.com',
password: 'Testing1234',
confirmPassword: 'Testing1234',
firstName: 'Abc',
lastName: 'Defg'
};
request(url)
.post('/user/signup')
.send(profile)
.end(function(err, res) {
if (err) {
throw err;
}
res.should.have.status(400);
done();
});
});
我也注意到虽然我已经宣布var should = require('should');
,但我的意思通知我“应该&#39;是一个未使用的局部变量。我真的不知道为什么。
答案 0 :(得分:11)
尝试
res.status.should.be.equal(400);
或
res.should.have.property('status', 400);
关于&#34; &#39;应该&#39;是一个未使用的局部变量&#34;。这是真的。你不应该直接使用。只有副作用。请改为require('should');
。
答案 1 :(得分:2)
作为Yury答案的补充。有should-http个包,其中包含.status(code)
个断言。你需要在代码中需要它,它将被添加到should.js。
答案 2 :(得分:2)
放置一行:
scalaz.Equal
代码中的某处。 E.g:
require('should-http');
答案 3 :(得分:1)
我将切换到filter
:
expect