6

これは、公式のJMockitチュートリアルからのものです。

@Test
   public void doSomethingHandlesSomeCheckedException() throws Exception
   {
      new Expectations() {
         DependencyAbc abc;

         {
            abc.stringReturningMethod();
            returns("str1", "str2");
            result = new SomeCheckedException();
         }
      };

      new UnitUnderTest().doSomething();
   }

反対のことを言うことは可能ですか?つまり、複数の結果と1つの戻り値です。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 に答える