Map を引数として取るメソッドに依存しています。
public interface Service {
void doSomething(Map<String, String> map);
}
この依存関係が適切なマップ コンテンツで呼び出されるというアサーションを書きたいと思います。このようなもの:
@RunWith(JMock.class)
public class MainTest {
private Mockery context = new Mockery();
private Service service = context.mock(Service.class);
private Main main = new Main(service);
@Test
public void test() {
context.checking(new Expectations(){{
oneOf(service).doSomething(with(hasEntry("test", "test")));
}});
main.run();
}
}
残念ながら、これはコンパイルに失敗します。これは、hasEntry のマップ ジェネリック パラメーターにワイルドカードがあるためです。
public static <K, V> org.hamcrest.Matcher<java.util.Map<? extends K, ? extends V>> hasEntry(K key, V value);
マップ コンテンツの JMock 期待値を記述する方法はありますか?