res.should.have.status给我错误

我是新来的摩卡和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'); ,我的IDE通知我“应该”是一个未使用的局部variables。 我不知道为什么。

尝试

 res.status.should.be.equal(400); 

要么

  res.should.have.property('status', 400); 

而关于“应该”是一个未使用的局部variables“。 这是真的。 你不要直接使用。 只有副作用。 尝试require('should'); 代替。

除了Yury的答案。 应该是http包,其中包含.status(code)断言。 你需要在代码中需要它,它会被添加到should.js。

放置行:

 require('should-http'); 

在你的代码的某处。 例如:

 require('should-http'); describe('Test Something', function() { ...