作为方法调用的结果,JMockit有多个异常

时间:2013-01-14 12:03:54

标签: java unit-testing junit jmockit

这是来自官方的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的返回类型)

2 个答案:

答案 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";