0
私はHazelcastInstanceとそのIMapを嘲笑していました。このIMapオブジェクトをロック、更新、アンロックした複数のメソッド(追加、削除)をテストしなければなりませんでした。しかし、Mocked IMapオブジェクトは、テストを実行しようとするとゼロの呼び出しを示しています。次のように テストクラスは、次のように試験するIMap、ヘイルキャストインスタンスjunitで模擬
@RunWith(PowerMockRunner.class)
public class Test {
@Mock
private HazelcastInstance hazelcastInstance;
@Mock
private IMap<Object, Object> imap; // but in actual class instead of Object (K, V) we are having Class Names. private IMap<ClassA,ClassB> imap;
private TestClass testClass;
@Mock
private ClassA a;
@Mock
private ClassB b;
@Test
public void testAdd() {
when(hazelcastInstance.getMap(anyString())).thenReturn(imap);
testClass.add(a, b);
verify(imap, times(1)).lock(any()); //supposed to be invoked (1 time). But it is showing as zero interaction
verify(imap, times(1)).unlock(any());
}
}
クラスです。
public class TestClass {
private IMap<ClassA, ClassB> imap= Hazelcast.newHazelcastInstance().getMap("constant);
public void add(final ClassA key, final ClassB value) {
if (key == null) {
return;
}
try {
imap.lock(key);
imap.put(key, value, 3L, TimeUnit.SECONDS);
} finally {
imap.unlock(key);
}
}
}