今日、Mockito と spring を使用して作業しているときに、このシナリオに感銘を受けました。
public class MyClass {
private MyService myService;
int doSomethingElse(String str) {
.....
myService.doSomething(str);
...
}
}
public interface MyService {
String doSomething(String str);
}
public class Class1 {
private MyClass myClass;
public Stirng methodToBeTested() {
myClass.doSomethingElse("..");
}
}
public class class1Test {
@Mock
MyService myService;
@Resource
@Spy
@InjectMocks
MyClass myClass;
@Resource
@InjectMocks
Class1 class1;
public void setUPTest() {
MockitoAnnotations.initMocks(this);
}
@Test
public void methodToBeTestedTest() {
this.setUPTest();
...
class1.methodToBeTested();
}
}
ここで「MyService」をモックしたいと思います。ただし、 MyService は "MyClass" で使用され、 "Class1" で使用されます。
spring を使用して「MyClass」と「Class1」を初期化したい。
このテストを実行しようとすると、次の例外が発生しました
org.mockito.exceptions.base.MockitoException: クラス $Proxy79 をモック/スパイできません Mockito は以下をモック/スパイできません: - 最終クラス - 匿名クラス - プリミティブ型
誰でもこれで私を助けることができますか?