【发布时间】:2014-04-25 17:05:22
【问题描述】:
我正在使用 JMock 编写单元测试,并且我有一个模拟的 void 方法来更新作为参数传入的列表。不幸的是,这个列表是我正在测试的方法内部的,所以我没有参考它。是否有可能从创建的期望中得到它?我需要能够将对象插入列表以模仿模拟类的行为。另一种方法是将列表作为返回类型而不是作为参数传递;这可能也是更好的做法。
context.checking(new Expectations() {
{
// need to reference this list to insert objects into
oneOf(mockedClass).mockedMethod(with(any(List.class)));
}
});
【问题讨论】:
-
我认为您提出的替代方案(返回列表)似乎更明确且更易于理解。否则,我认为您的测试试图告诉您有关您的设计的一些信息。 (即,如果您需要模仿模拟类的行为,则可能类之间的耦合比您预期的要强。)
-
@Lilshieste 这就是我最终采用的方法。感谢您的回复。
标签: java unit-testing mocking jmock