У меня есть тестовая спецификация Jasmine test_spec.js, например:
describe('my tests', () => {
it('POST should return 201 created', () => {
var req = {
method: 'POST',
url: '/api/v1.0/message',
payload: JSON.stringify({name: 'Ethan'})
};
server.inject(req, res => {
expect(res.statusCode).to.equal(201);
});
});
});
Маршрут вызова API выглядит следующим образом:
var routes = [{
path: '/api/v1.0/message',
method: 'POST',
handler: function(request, reply) {
reply('Success').created();
}
}];
exports.register = function(server, options, next) {
server.route(routes);
next();
}
Однако, когда я запускаю тесты, функция expect()
этого конкретного теста не вызывается, потому что метод server.inject()
не вызывает обратный вызов ответа. На самом деле даже метод обработчика маршрута не вызывается (я проверял с помощью операторов console.log). Однако, когда я меняю метод запроса и маршрут с POST на GET, он работает, и тест вызывает метод expect()
, как и ожидалось. Тест просто не работает с запросами POST. Я делаю это неправильно?
jasmine
в терминале. - person pkout   schedule 17.05.2016