Ich versuche, einen einfachen Test für meinen Controller zu schreiben. Ich benutze diese documentation von Sails.jsIntegrationTest mit SuperTest erwartet 302 bekommt 200 in Sails.js Anwendung
Die UserController.test.js:
var request = require('supertest');
describe('UserController', function() {
describe('#login()', function() {
it('should redirect to/indexpage', function (done) {
request(sails.hooks.http.app)
.post('/login')
.send({name: 'Stifflers', password: 'Mom'})
.expect(302)
.expect('Location', '/', done);
});
});
});
Der entsprechende Code aus AuthController.js:
...
// is authenticated
res.writeHead(302, {
'Location': "/"
});
res.end();
...
ich den Test mit npm Test laufen und bekomme diesen Fehler:
Error: expected 302 "Found", got 200 "OK"
Wenn ich ch ange der .expect (302) in meinem Test zu .expect (200) ich den nächsten Fehler:
Error: expected "Location" header field
habe ich versucht, es die gleiche wie in der Dokumentation zu tun, warum nicht es funktioniert?
Warum verwenden Sie '' 'res.redirect (302, '/')' ''? – Bonanza
@ Bonanza Das ist egal, wir bekommen den gleichen Effekt. 1: http://expressjs.com/en/api.html#res.redirect 2: https://nodejs.org/api/http.html#http_response_writehead_statuscode_statusmessage_headers – Suisse
Haben Sie bestätigt, dass die richtige Route tatsächlich ausgeführt wird? Es scheint nicht zu sein. –