1

我在想,是否可以使用 EasyMock 模拟整个对象的行为,但是一旦声明具有所有预期值和结果的模拟,就可以多次使用而不关心请求的顺序?

这样做的目的是创建一个模拟实例,例如在 JUnit 测试 @BeforeClass 中,并在几个 @Test 方法中使用它。

提前感谢您的任何意见,

问候,P。

4

2 回答 2

3

如果您对验证对模拟的调用不感兴趣,并且您唯一的目标是确保每当调用模拟上的特定方法时,它总是会返回相同的所需结果,您可以使用配置它andStubReturn(),例如

expect(mock.getMeaningOfLifeUniverseAndEverything()).andStubReturn(42);
于 2011-01-13T09:01:09.890 回答
3

我认为你真的想要两件事:

  1. 乱序使用模拟方法的能力,这是默认的easymock(非严格模式),
  2. 能够多次使用模拟方法。

你这样做后者是这样的:

expect(someMock.someMethod()).anyTimes().andReturn(someValue);

如果您的方法每次调用时都会获得不同的参数,您可以使用 anyObject() 方法忽略提供的参数。

于 2011-01-13T09:01:17.700 回答