我需要使用EasyMock模拟一个void函数,这样第一个调用会返回一个Exception,而下一个调用会成功。
例如:
this.myObject.move((String) EasyMock.anyObject());
EasyMock.expectLastCall().once().andThrow(new RetryableDependencyException());
EasyMock.expectLastCall().once();
但这不起作用。
答案 0 :(得分:0)
这不会起作用,因为第二个expectLastCall()无法找到任何电话。
你试过这个:
this.myObject.move((String) EasyMock.anyObject());
EasyMock.expectLastCall().once().andThrow(new RetryableDependencyException());
this.myObject.move((String) EasyMock.anyObject());
EasyMock.expectLastCall().once();
我知道它有点冗长,但它应该让你排序:)
答案 1 :(得分:0)
最短的是
myObject.move(anyString());
expectLastCall().andThrow(new RetryableDependencyException()).asStub();
假设在异常后多次调用该方法并不重要。如果重要,那将是
myObject.move(anyString());
expectLastCall().andThrow(new RetryableDependencyException());
myObject.move(anyString());
有趣的事实: