У меня есть настройка компонента, которая по сути является лаунчером для приложения. Это настроено так:
@Component
public class MyLauncher {
@Autowired
MyService myService;
//other methods
}
MyService помечен аннотацией @Service
Spring и без каких-либо проблем автоматически подключается к моему классу запуска.
Я хотел бы написать несколько тестовых примеров jUnit для MyLauncher, для этого я запустил такой класс:
public class MyLauncherTest
private MyLauncher myLauncher = new MyLauncher();
@Test
public void someTest() {
}
}
Могу ли я создать объект Mock для MyService и внедрить его в myLauncher в моем тестовом классе? В настоящее время у меня нет getter или setter в myLauncher, так как Spring обрабатывает автоматическое подключение. Если возможно, я бы не хотел добавлять геттеры и сеттеры. Могу ли я сказать контрольному коду ввести фиктивный объект в переменную autowired, используя @Before
инициализации @Before
?
Если я говорю об этом совершенно неправильно, не стесняйтесь говорить это. Я все еще новичок в этом. Моя основная цель - просто иметь некоторый Java-код или аннотацию, которая помещает фиктивный объект в эту переменную @Autowired
без необходимости писать метод установки или использовать файл applicationContext-test.xml
. Я бы предпочел сохранить все для тестовых случаев в файле .java
вместо того, чтобы поддерживать отдельный контент приложения только для моих тестов.
Я надеюсь использовать Mockito для макетов объектов. В прошлом я делал это с помощью org.mockito.Mockito
и создавал свои объекты с помощью Mockito.mock(MyClass.class)
.