Внедрение частного поля @Autowired во время тестирования

У меня есть настройка компонента, которая по сути является лаунчером для приложения. Это настроено так:

@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 в моем тестовом классе? Я в настоящее время нев myLauncher нет геттера или сеттера, так как Spring обрабатывает автоматическое подключение. Если возможно, яЯ хотел бы не добавлять геттеры и сеттеры. Могу ли я сказать тестовому случаю ввести фиктивный объект в переменную autowired, используя@Before метод init?

Если я'Я говорю об этом совершенно неправильно, не стесняйтесь говорить это. Я'Я все еще новичок в этом. Моя главная цель - просто иметь некоторый Java-код или аннотацию, которая помещает фиктивный объект в@Autowired переменная без меня, чтобы написать метод установки или необходимости использоватьapplicationContext-test.xml файл. Я бы предпочел сохранить все для тестовых случаев в.java файл вместо того, чтобы поддерживать отдельный контент приложения только для моих тестов.

Я надеюсь использоватьMockito для ложных объектов. В прошлом я делал это с помощьюorg.mockito.Mockito и создание моих объектов с.Mockito.mock(MyClass.class)

Ответы на вопрос(6)

Ваш ответ на вопрос