【问题标题】:EasyMock 3.2: Creating an expect() for a method that takes a generic as an argumentEasyMock 3.2:为将泛型作为参数的方法创建一个 expect()
【发布时间】: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);

queryPluginQueryParserPlugin 类的模拟。前两个给出编译器错误,说:

required: Class<T>
found: QueryParserPlugin

第三个编译,但总是返回 null,可能是因为它与期望不匹配,并且模拟是用 createNiceMock 创建的。

知道如何正确指定参数吗?

【问题讨论】:

    标签: easymock


    【解决方案1】:

    这最终成为了一个 Java 问题,而不是一个 EasyMock 问题,但这确实有效:

    expect(core.createInitInstance(isA(QueryParserPlugin.class.getClass()))).andReturn(queryPlugin);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多