在我的一个模拟类中,我需要为具有类似于此的签名的方法创建expect
:
public <T extends Object> T createInitInstance(Class<T> cast)
根据cast
参数,我返回的内容会有所不同。它将是cast
指定类型的另一个模拟对象。我尝试过的一些方法是:
expect(core.createInitInstance(anyObject(QueryParserPlugin.class))).andReturn(queryPlugin);
和
expect(core.createInitInstance(isA(QueryParserPlugin.class))).andReturn(queryPlugin);
和
expect(core.createInitInstance(isA(Class.class))).andReturn(queryPlugin);
其中queryPlugin
是类QueryParserPlugin
的模拟。前两个给出了编译器错误,说:
required: Class<T>
found: QueryParserPlugin
第三个编译,但总是返回null,可能是因为它与期望不匹配,并且模拟是使用createNiceMock
创建的。
知道如何正确指定参数吗?
答案 0 :(得分:2)
这最终成为一个Java问题,而不是EasyMock问题,但这是有效的:
expect(core.createInitInstance(isA(QueryParserPlugin.class.getClass()))).andReturn(queryPlugin);