EasyMock 3.2:如何处理模拟类中的公共变量?

时间:2014-04-04 23:49:37

标签: easymock

我试图嘲笑一个开源类。该类使用许多公共变量而不是get方法。当访问该变量时,我需要让mocked类返回另一个模拟类,但我不确定如何。这是一个例子:

SolrQueryRequest request = createNiceMock(SolrQueryRequest.class);
...
replay(request);

ResponseBuilder builder = createNiceMock(ResponseBuilder.class);
expect(builder.req).andReturn(request); // Throws exception
replay(builder);

但是,上面的示例会在java.lang.IllegalStateException: no last call on a mock available行引发异常builder.req。知道我怎么能这样做吗?请注意,我没有选择重构被模拟的类。

1 个答案:

答案 0 :(得分:1)

好吧,在玩了之后我发现它很简单:

myBuilder.req = request;

现在,当我的受测试类访问myBuilder.req变量时,它已正确设置为我的模拟SolrQueryRequest