【发布时间】:2014-04-06 01:27:33
【问题描述】:
在我的一个模拟类中,我需要为具有类似于以下签名的方法创建一个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 创建的。
知道如何正确指定参数吗?
【问题讨论】:
标签: easymock