Супертест тест экспресс промежуточного
Нашел следующую подсказку о том, как тестировать промежуточное ПО в express:
https://github.com/visionmedia/express/blob/master/test/req.xhr.js
мне было интересно, почему мои тесты всегда проходят. Пока я не заметил, что, когда я копировал тест из express, они вели себя так же. Я пытался испортить их, но они продолжают проходить мимо.:
https://github.com/visionmedia/express/blob/master/test/req.xhr.js
Чего мне здесь не хватает?
it('should return true when X-Requested-With is xmlhttprequest', function(done){
var app = express();
app.use(function(req, res){
req.xhr.should.be.false; //set to false, to fail the test but it still passes
res.end();
});
request(app)
.get('/')
.set('X-Requested-With', 'xmlhttprequest')
.end(function(res){
done();
})
})
1 ответ:
Вы ничего не пропустили, это экспресс-тест
req.xhr
это никогда не подведет.При запуске примера вы увидите ошибку stacktrace, но тест пройдет, потому что:
- он не поймал ошибку во время теста.
- информация об ошибке не передается вызову функции
done()
.Мои исправления находятся в PR #2053:
- используйте
expect()
для возврата ошибки утверждения в.end()
.- передайте любую информацию об ошибке в
done()
.