mockito.spy メソッドで困っています。
私は最近、「古い」プロジェクトに到着しました。私の最初のタスクは、それにmockitoを追加し、実際の単体テストを行うことです:)
プロジェクトには多くの概念上の問題がありますが、ここでのポイントではありません ;)
私は私の問題を説明します:
クラスがあります
public class Tutu{
public Tutu(){
}
}
public class Toto{
public Toto(){
}
public int executeToto(Tutu tutu){
//do some stuff
return 5;
}
}
public class Titi{
private Toto toto;
public Titi(){
this.toto = new Toto();
}
public void executeTiti(){
//do some stuff
Tutu tutu = new Tutu();
int ret = this.toto.executeToto(tutu);
//do some stuff
}
}
私のテスト クラス TitiTest.java では、executeTiti のみをテストしたいのですが、このクラスには独自のテスト クラス TotoTest.java があるため、executeToto をテストしたくありません。
しかし、ご覧のとおり、 toto はtitiコンストラクターでインスタンス化されるため、次のようなことを試します:(テストでもPowerMockを使用しているため、PowerMockRunnerを使用していますが、問題ではないようです)
@RunWith(PowerMockRunner.class)
public class TitiTest {
@Test
public void testExecuteTiti(){
Toto toto = Mockito.spy(new Toto());
Mockito.doReturn(2).when(toto).executeToto(Mockito.any(Tutu.class));
Titi testedObject = new Titi();
testedObject.executeTiti();
}
}
しかし、実際のメソッドは常に呼び出しており、毎回 ret = 5 :(
私は何かが恋しいですか?私はstackoverflowでこれに関する多くの投稿を読み、すべての解決策を試しましたが、私は正しいことをしていると思うのでうまくいきません.
私はjunit4.11/powermock1.5.4/mockito1.9.5を使用しています