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);
我是 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);