Сегодня, работая с Mockito и весной я получил ударил с этим сценарием,тест блока весной с использованием Mockito
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».
Я хочу инициализировать «MyClass» и «Class1» с использованием пружины.
Когда я пытаюсь запустить этот тест, я получил следующее исключение
org.mockito.exceptions.base.MockitoException: Не может издеваться/шпион класс $ Proxy79 Mockito не может издеваться/шпионом следующего: - окончательный классы - анонимные классы - примитивные типы
Может ли кто-нибудь помочь мне с этим?
Услуга не используется Class1. Прямой зависимостью Class1 является MyClass. Это класс, который вы должны высмеять, чтобы проверить Class1. Затем, чтобы проверить MyClass, вы бы издевались над MyService. –
Спасибо за ответ. Позвольте мне более подробно рассказать об этом, «MyService» - это внешний веб-сервис, и я хочу издеваться над всеми вызовами этого сервиса, где бы он ни находился в моем проекте. – rahul