2016-10-22 65 views
1

我正在測試我的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 
    }); 
    }); 
}); 
+0

希望不要有這樣做,但我想這是唯一的解決辦法。 –

+0

你也可以使用像機會或簡單的隨機生成一個200到300之間的數字。但它不會重現:/ –