【发布时间】:2015-03-20 10:49:48
【问题描述】:
我想多次致电allowing() 并提供不同的结果。但我发现第一个 allowing() 规范吸收了所有调用,我无法更改返回值。
@Test
public void example() {
timeNow(100);
// do something
timeNow(105);
// do something else
}
private void timeNow(final long timeNow) {
context.checking(new Expectations() {{
allowing(clock).timeNow(); will(returnValue(timeNow));
}});
}
如果我将 allowing(clock) 更改为 oneOf(clock) 它工作正常。但理想情况下,我想使用allowing(),而不是过度指定时钟只调用一次。有什么办法吗?
【问题讨论】:
-
如果你使用了 mockito,它会很容易指定......不过,使用 jmock,不知道,抱歉
-
Mockito 很灵活,但实际上我发现 jMock 的挑剔通常很有用:如果在 jMock 中很难做到,那就意味着你的设计很糟糕。在这种情况下,我认为我的设计还可以,而 jMock 让我失望了。 :(