我不知道怎么做,但我不能为我的生活弄清楚如何让这个测试失败。老实说,我真的不知道我在做什么,但看到/fail
并不存在,我的所有路线都受到身份验证的保护,导致GET /fail 401
测试应该失败,因为它expect(200)
。那么这里发生了什么?
var app = require('../../app');
var request = require('supertest');
var agent = request.agent(app);
describe('Index Routes', function(done){
it('should return 200 status code', function(done){
agent.get('/').expect(500, done);
});
it('should fail horribly', function(done){
agent.get('/fail').expect(200, done);
})
});
输出:
> istanbul cover node_modules/mocha/bin/_mocha -x database.js
Index Routes
[0mGET / [32m200 [0m374.389 ms - 170[0m
1) should return 200 status code
[0mGET /fail [33m401 [0m1.723 ms - 21[0m
√ should fail horribly
1 passing (415ms)
1 failing
1) Index Routes should return 200 status code:
Error: expected 500 "Internal Server Error", got 200 "OK"
at Test._assertStatus (C:\Users\janedoe\WalkingApp-WebService\node_modules\supertest\lib\test.js:232:12)
at Test._assertFunction (C:\Users\janedoe\WalkingApp-WebService\node_modules\supertest\lib\test.js:247:11)
at Test.assert (C:\Users\janedoe\WalkingApp-WebService\node_modules\supertest\lib\test.js:148:18)
at Server.assert (C:\Users\janedoe\WalkingApp-WebService\node_modules\supertest\lib\test.js:127:12)
at emitCloseNT (net.js:1521:8)
=============================== Coverage summary ===============================
Statements : 58.05% ( 101/174 )
Branches : 6.25% ( 2/32 )
Functions : 12.9% ( 4/31 )
Lines : 61.59% ( 101/164 )
================================================================================
答案 0 :(得分:0)
原来这是我的身份验证问题。只需在res.send().status();
的身份验证方法中将res.status().send()
的顺序切换为Passport.js
。
答案 1 :(得分:0)
这是res.status方法的express v4 documentation。 res.status是Node response.statusCode的可链接别名。然后,您可以在此后链接发送功能。
res.status(400).send('Bad Request');