1

我有一张看起来像这样的地图Map<String, Class<? extends TypeA>> differentTypesOfA;
我有不同的 TypeA 子类

Class TypeB implements TypeA {..}
Class TypeC implements TypeA {..} 等等

我把它们放到地图的某个地方differentTypesOfA.put("TypeB",TypeB.class)

现在我正在尝试用

@Mock Map<String, Class<? extends TypeA>> differentTypesOfAMock;接着
.. setup() { when(differentTypesOfAMock.get(anyString()).thenReturn(TypeB.class);
}

这当然行不通,但我也想不出一个模拟这张地图的好方法。有人可以帮忙吗?

4

1 回答 1

0

如果您只想验证 Map.get() 方法,那么您可以使用真实的 Map,并且可以创建它的间谍。然后您可以将间谍而不是原始对象传递给测试代码,然后您可以检查对地图的所有调用。(参见http://docs.mockito.googlecode.com/hg/latest/org/mockito/Mockito.html#13)。您不必在间谍上存根任何东西。一个很好的例子在这里(在问题中):它是 Mockito 间谍的正确案例吗?

于 2013-11-06T23:01:55.527 回答