Я прочитал много ответов, предполагая, что способ модульного тестирования 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)
Оба подхода эквивалентны или один лучше другого? И почему?