res.should.have.status给了我错误

时间:2015-01-06 01:56:22

标签: javascript node.js mocha should.js

我是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;是一个未使用的局部变量。我真的不知道为什么。

4 个答案:

答案 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