JUnit テストで System.exit() 呼び出しをトリガーするメソッドに取り組む方法
System.exit() を利用するメソッドのテストには課題が生じるJUnit 環境では、JVM の終了により発生します。この障害を克服するために、さまざまな解決策が提案されています。
System.exit() の代わりの例外
Derkeiler.com は、System.exit() を放棄し、代わりにスローすることを提案しています。未チェックの例外。 JUnit はこれらの例外をキャッチしてテストの失敗を強調表示しますが、後続のテストを継続して実行できるようにします。
Modify JUnit to Prevent System.exit()
カスタム メソッドを実装することで、 TestCase クラス、NoExitTestCase、セキュリティ マネージャーを使用して、System.exit() 呼び出しをブロックできます。終了試行がトリガーされると、SecurityException がスローされ、テスト ケースが予想される終了ステータスを処理および検証できるようになります。
システム ルールを利用する
JUnit で導入されたシステム ルール4.9 は、java.lang.System と対話するコードをテストするメカニズムを提供します。 ExpectedSystemExit ルールは、特に System.exit() 呼び出しの検証を有効にし、終了ステータス コードの検査を可能にします。
追加の考慮事項
System.exit() を呼び出すメソッドをテストする場合) Java 21 以降では、セキュリティの使用を有効にするには、システム プロパティ -Djava.security.manager=allow を設定する必要があります。マネージャー。
以上がJUnit で `System.exit()` 呼び出しをトリガーするメソッドをテストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。