Тестирование: высмеивание нескольких ответов кода статуса
Я проверяю свои http ответы.
Я хотел бы написать тест, который говорит, что любой статус между 200 и 300 действителен, а все остальное недопустимо.
Однако, чтобы проверить код состояния, я должен сначала создать ложный ответ, например, так:
before(() => {
mockResponse = new window.Response(JSON.stringify(mockResponseData), {
status: 200,
headers: {
'Content-type': 'application/json'
}
})
fetchMock.post('/myurl',mockResponse)
})
it('Should ...')
Обратите внимание, что я установил статус напрямую. Поэтому при создании фиктивного теста мне нужно установить статус. Как я могу проверить диапазон статусов?
1 ответ
Решение
Вы можете сделать что-то подобное для проверки каждого случая:
describe('http tests', function () {
var codes = [];
for(var code = 200; code < 300; code++){
codes.push(code);
}
codes.forEach(function(code){
it(`should responds with a ${code} status`, function () {
mockResponse = new window.Response(JSON.stringify(mockResponseData), {
status: code,
headers: {
'Content-type': 'application/json'
}
})
fetchMock.post('/myurl',mockResponse)
//test code
});
});
});