JMock - 获取对mocked方法参数的引用

时间:2014-04-25 17:05:22

标签: java unit-testing mocking jmock

我正在使用JMock编写单元测试,我有一个模拟的void方法,它更新作为参数传入的列表。不幸的是,这个列表是我正在测试的方法的内部,所以我没有参考它。是否有可能从创造的期望中获得它?我需要能够将对象插入到列表中以模仿模拟类的行为。替代路由是将列表作为返回类型而不是作为参数传递;这也许是更好的做法。

context.checking(new Expectations() {
    {
       // need to reference this list to insert objects into
       oneOf(mockedClass).mockedMethod(with(any(List.class))); 
    }    
});

1 个答案:

答案 0 :(得分:0)

您可以通过custom matcher访问该方法的输入,但它带有难闻的气味,因为您将操纵匹配器内部的结构,而不是它的目的。

更好的方法是更改​​方法的设计以返回列表,以便您可以适当地模拟它。