这是来自官方的JMockit教程:
@Test
public void doSomethingHandlesSomeCheckedException() throws Exception
{
new Expectations() {
DependencyAbc abc;
{
abc.stringReturningMethod();
returns("str1", "str2");
result = new SomeCheckedException();
}
};
new UnitUnderTest().doSomething();
}
是否可以说明相反的情况,即多个结果和一个返回 - 我需要抛出2个异常,然后才返回一个好的值。我正在寻找的东西是这样的:
abc.stringReturningMethod();
returns(new SomeCheckedException(), new SomeOtherException(),"third");
这不起作用,JMockit无法将这些例外转发给String
(这是stringReturningMethod
的返回类型)
答案 0 :(得分:6)
像这样写:
abc.stringReturningMethod();
result = new SomeCheckedException();
result = new SomeOtherException();
result = "third";
答案 1 :(得分:1)
我不知道是否有快捷方式可以执行此操作,但您始终可以记录该方法将被多次调用:
abc.stringReturningMethod();
result = new SomeCheckedException();
abc.stringReturningMethod();
result = new SomeOtherException();
abc.stringReturningMethod();
result = "third";