6

这是来自官方的 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

4

2 回答 2

8

像这样写:

    abc.stringReturningMethod();
    result = new SomeCheckedException();
    result = new SomeOtherException();
    result = "third";
于 2013-01-15T14:11:12.170 回答
1

我不知道是否有捷径可以做到这一点,但您总是可以记录该方法将被多次调用:

abc.stringReturningMethod();
result = new SomeCheckedException();

abc.stringReturningMethod();
result = new SomeOtherException();

abc.stringReturningMethod();
result = "third";
于 2013-01-14T12:15:32.193 回答