我試圖嘲笑我的requests.get有一個狀態代碼200
和使history[0].status_code
觸發IndexError
(因爲沒有重定向)。我能夠得到status_code
返回200
,但是當我用期望的副作用剔除歷史記錄時,IndexError
未被觸發。用Python單元測試嘲弄side_effect
@patch('requests.get')
def test_no_redirect(self, mock_requests):
mock_requests.return_value.status_code = 200
mock_requests.history[0].status_code.side_effect = IndexError()
response = requests.get('example.com')
self.assertRaises(IndexError, response.history[0].status_code)
self.assertTrue(200, response.status_code)
你確定,你應該指定''IndexError()''來''''status_code''的side_effect''? Mayby調用''history [0]''應該拋出錯誤? – Kamil
@Kamil謝謝你的建議,但我已經嘗試過,並沒有引發異常。 – Cephlin