アプリケーションでSpringを使用していて、すべてのクラスの単体テストを作成したいと思います。アプリケーションからいくつかの外部Webサービスを呼び出しますが、機能をテストしたいだけなので、Mockitoを使用してそれらをモックしたいと思います。
次のシナリオがあるとしましょう
これは私のWebサービスインターフェイスです
public interface MyWebService {
public String getSomeData(int id);
}
私は上記のサービスをこのように使用します
public interface MyService {
int doSomethingElse(String str);
}
public class MyServiceImpl implements MyService {
private MyWebService myWebService;
int doSomethingElse(String str) {
.....
myWebService.getSomeData(id);
...
}
}
public interface MyService1 {
Stirng methodToBeTested();
}
public class Class1 implements MyService1{
@Resource
private MyService myService;
public Stirng methodToBeTested() {
myService.doSomethingElse("..");
}
}
私はuintテストケースを以下のように書きました。単体テストを実行するために、ここでMyServiceをスパイしています。
public class class1Test {
@Spy
MyService myService;
@Resource
@InjectMocks
Class1 class1;
public void setUPTest() {
MockitoAnnotations.initMocks(this);
Mockito.doReturn(123).when(myService).doSomethingElse("someString");
}
@Test
public void methodToBeTestedTest() {
this.setUPTest();
...
class1.methodToBeTested();
}
}
テストを実行すると、スタブ中に言及した内容をWebサービスから取得することがわかります。
誰かがこれを手伝ってくれますか?