这可能吗?我试过EasyMock.expectLastCall().times(0);
但 EasyMock 抱怨时间必须 >=1
问问题
17752 次
6 回答
25
您可以使用.andThrow(new AssertionFailedError()).anyTimes();
- 这与Assert.fail()
抛出的异常相同,但比生成Answer
.
于 2013-01-16T20:58:04.843 回答
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();
于 2011-05-30T13:43:46.247 回答
8
某些方法未被调用的事实由Mock
or控制StrictMock
。当调用未记录的方法时,它们将引发异常。仅在使用NiceMock
s 时才会出现此问题,其中调用未记录的方法时会返回默认值。
所以一个解决方案可以是不使用NiceMock
s。
于 2012-08-23T14:51:44.703 回答
1
如果您希望您的方法不会被调用,那么就不要记录它。但我同意它不适用于一个很好的模拟。
于 2010-09-16T21:54:12.513 回答
1
对我来说似乎是一个错误。内部类Range
不允许设置小于 1 的最大值。
你不能模拟那个方法,然后打电话Assert.fail()
吗?
于 2010-09-15T06:54:29.067 回答
0
我设法想出了一个解决方案:
expectLastCall().andAnswer(new IAnswer() {
public Object answer() {
Assert.assertFail();
return null;
}
});
于 2010-09-15T20:54:07.753 回答