Python модульное тестирование вызова sys.exit с помощью assertRaises или mock.patch - PullRequest
0 голосов
/ 26 марта 2020

Я прочитал много ответов, предполагая, что способ модульного тестирования sys.exit заключается в следующем:

with self.assertRaises(SystemExit) as system_exit:
    function()
self.assertEqual(system_exit.exception_code, 1)

Разве вышесказанное на самом деле не вызывает SystemExit в моем тесте? Лучше или хуже делать следующее?

@mock.patch("<path to class file>.sys.exit")
def testFunction(self, mock_sys_exit):
    function()
    mock_sys_exit.assert_called_once_with(1)

Оба подхода эквивалентны или один лучше другого? И почему?

...