2016-08-11 16 views
0

私のメソッドが同じクラスのの別のメソッドを呼び出すかどうかをテストしたいと思います。ノンモックドメソッドが呼び出されたことを確認するにはどうすればいいですか?

例:

public void methodToTest(){ 

//other stuff to test that can be mocked 
someClassICanMock.doSomething(); 

//method within same class that cannot be mocked 
methodFromSameClassIWantToVerify(); 

} 

どのように私はテスト中のこの私の方法はmethodFromSameClassIWantToVerify();?

編集呼び出すことを確認するためにverifyを使用することができます。私はこれを具体的にテストする方法を指していていない重複をmockitoを使って。あなたがスパイをしたいのように、ここで示したように、このような

+0

はhttp://stackoverflow.com/a/33670427/1743880、 – Tunaki

答えて

2

は、

MyClass c = new MyClass(); 
someClassICanMock m = mock(someClassICanMock.class); 
doNothing().when(m).doSomething(); 
MyClass s = spy(c); 
s.methodToTest(); 
verify(s , times(1)).methodFromSameClassIWantToVerify(); 
+0

おかげですね、これは文句を言わない、実際にメソッド内のコードを実行しますか? – java123999

+0

それは、スパイは実際のインスタンスの呼び出しを検査することができます – kuhajeyan

+0

OK、メソッドが呼び出されたことを確認するためにスパイを呼び出す方法はありますが、実際にはその中のコードを呼び出すことはありません? – java123999

関連する問題