我试图嘲笑我的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