Javaと情熱のあいだ

カステラとドーナツと珈琲

System.exitをEclipseでテストするサンプル

テストにはdjUnitを使います。
実行する場合はdjUnitで実施しないとテストを実行することができない。
また、仮想モック・オブジェクトを有効にしないといけないので
「プロジェクト」→「プロパティ」→「djUnit」を開いて
「仮想モック・オブジェクト」タブの「仮想モック・オブジェクトを使用する」にチェックを入れる。
(テスト対象とテストケースが別プロジェクトの場合は両方にチェックを入れる必要があるかも)

public class SystemExit {
  public static void execute() {
    System.exit(0);
  }
}
import jp.co.dgic.testing.framework.DJUnitTestCase;

public class SystemExitTest extends DJUnitTestCase {


  public void testExecute() {
    // System.exitメソッドを無効化
    addReturnValue("java.lang.System", "exit");

    // ターゲットクラス実行
    SystemExit.execute();

    // 復帰ステータスの個数を検証
    assertEquals(1, getCallCount("java.lang.System", "exit"));

    // 復帰ステータスの検証
    assertEquals(0, ((Integer) getArgument(
      "java.lang.System", "exit", 0)).intValue());
  }
}