SimpleMockでアサーションを追加できるようにした
public class TestCase @Test public void アサーションを実行できること() { Interface i = SimpleMock.mock(Interface.class) .expect("bbb").with(Integer.class).asserts(this, "アサーション").returns("") .create(); i.bbb(1); //=> assertion done with 1 } public void アサーション(Integer target) { System.out.println("assertion done with " + target); assertEquals(1, target); } }
interfaceのチェックしたいメソッドと同じ引数を持つアサートメソッドを作成し、メソッド名をassertsに渡すだけ。アサーションの内容はテストクラスに書けるのでテスティングフレームワークにも依存しない!手抜きですけどね!