Python 2.7のメソッドで時々呼び出される
sys.exit(1)
適切な条件が満たされたときにこのコード行が呼び出されることを検証する単体テストを作成することは可能ですか?
ベストアンサー1
はい。sys.exit
を上げるSystemExit
ので、確認することができますassertRaises
:
with self.assertRaises(SystemExit):
your_method()
のインスタンスには、提案された終了ステータスに設定されたSystemExit
属性がありcode
、 によって返されるコンテキスト マネージャーには、assertRaises
キャッチされた例外インスタンスが として含まれるためexception
、終了ステータスの確認は簡単です。
with self.assertRaises(SystemExit) as cm:
your_method()
self.assertEqual(cm.exception.code, 1)
Python を終了します。これは
SystemExit
例外を発生させることによって実装されます... 外部レベルで終了の試行を傍受することが可能です。