Тестирование: высмеивание нескольких ответов кода статуса

Я проверяю свои 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
    });
  });
});
Другие вопросы по тегам