res.should.have.status 给我错误

res.should.have.status gives me error

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

尝试

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

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

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

作为 Yury 回答的补充。有 should-http 包,其中包含 .status(code) 断言。您需要在代码中的某处要求它,它将被添加到 should.js.

放置一行:

require('should-http');

代码中的某处。例如:

require('should-http');

describe('Test Something', function() {
    ...

我会切换到 expect:

expect(res.status).to.be.eq(400);