测试:模拟多个状态码响应

Testing: mocking multiple status code responses

我正在测试我的 HTTP 响应。

我想编写一个测试,说明 200 到 300 之间的任何状态都是有效的,其他任何状态都是无效的。

但是要测试状态代码,我必须首先创建一个模拟响应,如下所示:

before(() => {
   mockResponse = new window.Response(JSON.stringify(mockResponseData), {
      status: 200,
      headers: {
        'Content-type': 'application/json'
      }
    })
   fetchMock.post('/myurl',mockResponse)
})

it('Should ...')

注意我直接设置了状态。因此,在创建模拟测试时,我必须设置一个状态。如何测试一系列状态?

你可以做类似的事情来测试每个案例:

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
    });
  });
});