[java]djUnitをJunit4以降で利用する方法
@Testとimport static を使えばこんなに簡単〜
テスト対象クラスが↓こんなかんじとして
/** * テスト対象 * System.exit()を返すだけのクラス * @author kazuki-kido */ public class Sample { /** * メインメソッド * @param args */ public static void main(String[] args){ System.exit(0); } }
雛形が↓こんなかんじ。
import org.junit.Test; import static jp.co.dgic.testing.framework.DJUnitTestCase.*; /** * テストクラス * @author kazuki-kido */ public class SampleTest { /** * テストメソッドは通常のJUnit4の記述と同様 */ @Test public void simpleTest(){ addReturnValue("java.lang.System", "exit"); // テスト対象メソッドを実行 Sample.main(null); // 1回のみ呼ばれていることを確認 assertEquals(1, getCallCount("java.lang.System", "exit")); // System.exit(int)が0を返すことを確認 assertEquals(0, (int)((Integer) getArgument("java.lang.System", "exit", 0))); } }
何が嬉しいかっていうと、djUnitもPOJO記述のJUnitに適用できるってこと。
DJUnitTestCaseを継承する必要なし。メソッド名の制約もなくなって非常においしいですね。