1
我正在編寫用戶在登錄後才能訪問的頁面的單元測試。我有以下代碼來測試用戶是否成功登錄與否:如何爲用戶需要登錄的網頁編寫單元測試
describe('login', function() {
this.timeout(20000);
it('should login with correct password', function (done) {
this.timeout(20000);
setTimeout(done, 20000);
request.post('/login')
.send({
username:"[email protected]",
password:"admin1"
})
.expect('Location','/profile')
.end(done);
});
});
的測試工作,然後我試圖添加以下代碼:
describe('secret page',function(){
it('should get secret',function(done){
request.get('/secret')
.expect('Location','/secret')
.end(done);
});
});
我希望用戶應該能夠得到祕密頁面,但我收到一個錯誤:
GET /secret 302 0.424 ms - 28
Error: expected "Location" of "/secret", got "/login"
at Test._assertHeader (\node_modules\supertest\lib\test.js:247:12)
at Test._assertFunction (\node_modules\supertest\lib\test.js:281:11)
at Test.assert (\node_modules\supertest\lib\test.js:171:18)
at Server.assert (\node_modules\supertest\lib\test.js:131:12)
at emitCloseNT (net.js:1554:8)
at _combinedTickCallback (internal/process/next_tick.js:77:11)
at process._tickCallback (internal/process/next_tick.js:104:9)
我試圖把第二個「it」函數放到第一個描述塊中,我得到了同樣的錯誤。但是當網站正在運行時,用戶可以正確訪問祕密頁面,而不必返回登錄頁面。
你能發佈整個代碼嗎?請求做了什麼?你嘲笑什麼? – Ioan