23

クラス内の他のいくつかの void メソッドをたまたま呼び出す void メソッドをテストしています (これらのメソッドはすべて同じクラスにあります)。メソッドは、これらの線に沿ったものです...

public void methodToTest() {
   methodA();
   methodB();
}

void methodA() {
   methodA1();
   methodA2();
   methodA3();
}

私がやりたいことは、methodA()上記が何もしないようにすることです。つまり、methodA()基本的には次のようになりたいです。

void methodA() { }

私は両方を試してみましdoThrow()doAnswer()methodA()、役に立ちませんでした。どちらも完全に無視されているかのようです。

私が試したことの例...

doThrow(new RuntimeException()).when(mockedClass).methodA();

Mockitoを使用するだけでこれを行う方法はありますか? 変更されているクラスを自由に変更することはできません。

4

2 に答える 2

30

methodB を引き続き実行したい場合、methodA は何もしません。これはそれを行います:

TestClass spy = spy(new TestClass());
doNothing().when(spy).methodA();
spy.methodToTest(); 
于 2012-10-31T18:57:08.743 に答える