这可能吗?
我试过EasyMock.expectLastCall().times(0);
,但EasyMock抱怨时间必须是> = 1
答案 0 :(得分:21)
您可以使用.andThrow(new AssertionFailedError()).anyTimes();
- 这与Assert.fail()
引发的异常相同,但不如发送Answer
更简洁。
答案 1 :(得分:10)
使用easymock 3.0,您需要在expectLastCall上添加.anyTimes(),否则测试将失败:
Expectation failure on verify: myMethod(): expected: 1, actual: 0`
基于nkr1pt示例:
expectLastCall().andAnswer(new IAnswer() {
public Object answer() {
Assert.assertFail();
return null;
}
}).anyTimes();
答案 2 :(得分:7)
未调用某些方法的事实由Mock
或StrictMock
控制。当调用未记录的方法时,它们将抛出异常。仅当使用NiceMock
时才会出现此问题,其中在调用未记录的方法时返回默认值。
因此解决方案可以不使用NiceMock
s 。
答案 3 :(得分:1)
对我来说看起来像个错误。内部类Range
不允许将最大值设置为小于1。
你能不能嘲笑那个方法,只需拨打Assert.fail()
?
答案 4 :(得分:1)
如果您希望不要调用您的方法,那么就不要记录它。但我同意这不适用于一个很好的模拟。
答案 5 :(得分:0)
我设法找到了解决方案:
expectLastCall().andAnswer(new IAnswer() {
public Object answer() {
Assert.assertFail();
return null;
}
});