Oto pełny przykład pracy. Pomimo doskonałej odpowiedzi Pavela zajęło mi trochę czasu, aby to zrozumieć, więc włączam ją tutaj w nadziei, że będzie pomocna.
import unittest
from glf.logtype.grinder.mapping_reader import MapReader
INCOMPLETE_MAPPING_FILE="test/data/incomplete.http.mapping"
class TestMapReader(unittest.TestCase):
def test_get_tx_names_incomplete_mapping_file(self):
map_reader = MapReader()
with self.assertRaises(SystemExit) as cm:
tx_names = map_reader.get_tx_names(INCOMPLETE_MAPPING_FILE)
self.assertEqual(cm.exception.code, 1)
+1, z tym wyjątkiem, że jeśli chce zweryfikować, że wywołuje 'sys.exit (1)' (w przeciwieństwie do, powiedzmy, 'sys.exit (0)') musisz faktycznie potwierdzić, że jego 'code' jest 1. Zgaduję, że możesz to zrobić z 'assertRaisesRegexp (SystemExit, '1')'? – abarnert
Właśnie edytowałem to w :) –
Byłem pewien, że istniała metoda "unittest", która pozwala ci przekazać wyjątek i _callable predicate_ do uruchomienia na wyjściu lub jego args, a nie tylko _regex pattern_ do uruchomienia na łańcuchu reprezentacja jego pierwszego argumentu ... ale chyba nie. Czy jest jakiś inny moduł testowy, o którym myślę? – abarnert