import org.springframework.beans.factory.annotation.Autowired;
class MyService {
@Autowired private DependencyOne dependencyOne;
@Autowired private DependencyTwo dependencyTwo;
public void doSomething(){
//Does something with dependencies
}
}
При тестировании этого класса у меня в основном есть четыре способа ввода ложных зависимостей:
- Используйте Spring ReflectionTestUtils в тесте для ввода зависимостей
- Добавить конструктор в MyService
- Добавить методы настройки для MyService
- Ослабьте видимость зависимостей для защиты пакетов и установите поля непосредственно
Какой из лучших и почему?
--- UPDATE ---
Я предполагаю, что я должен был быть более ясным - я говорю только о тестах стиля "unit", а не в тестах "интеграции" Spring, где зависимости могут быть связаны с использованием контекста Spring.