JMockitのMockに渡す引数のチェック
with〜 を指定すると引数を完全一致以外でチェックできるようになる
package tutorial; import org.junit.After; import org.junit.Assert; import org.junit.Test; import mockit.*; public class HelloWorldTest3 { @Test public void testSample1() throws Exception { new Expectations(true) { @MockField(methods={"calc"}) DummyStream mock; { mock.calc("a"); returns("aa"); mock.calc(""); throwsException( new Exception() ); } }; Sample1 s = new Sample1(); String ans1 = s.Test("a"); Assert.assertEquals("aa",ans1); String ans2 = s.Test(""); Assert.assertEquals("",ans2); } @After public void tearDown() { Mockit.tearDownMocks(); } }
ここで、 mock.calc の呼び出しのパラメータはチェックせずになんでもOKにしたい場合
mock.calc(withAny(""));
とすればいい。
また、特定の文字列で始まっていることをチェックするために
mock.calc(withPrefix("a"));
などとすることも出来る。