我正在使用JMock编写单元测试,我有一个模拟的void方法,它更新作为参数传入的列表。不幸的是,这个列表是我正在测试的方法的内部,所以我没有参考它。是否有可能从创造的期望中获得它?我需要能够将对象插入到列表中以模仿模拟类的行为。替代路由是将列表作为返回类型而不是作为参数传递;这也许是更好的做法。
context.checking(new Expectations() {
{
// need to reference this list to insert objects into
oneOf(mockedClass).mockedMethod(with(any(List.class)));
}
});
答案 0 :(得分:0)
您可以通过custom matcher访问该方法的输入,但它带有难闻的气味,因为您将操纵匹配器内部的结构,而不是它的目的。
更好的方法是更改方法的设计以返回列表,以便您可以适当地模拟它。