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

时间:2016-10-22 16:11:06

标签: mocha sinon chai

我正在测试我的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 个答案:

答案 0 :(得分: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
    });
  });
});