Back to questions
Junior — Middle
50
Какие шаги необходимо предпринять для устранения зависимости класса при написании юнит-теста?
Answer from AI
sobes.tech AI
Для устранения зависимости класса при написании юнит-теста обычно применяют следующие шаги:
-
Использование интерфейсов или абстракций вместо конкретных классов для зависимостей. Это позволяет подменять реальные реализации на тестовые.
-
Внедрение зависимостей (Dependency Injection) — передача зависимостей через конструктор, сеттеры или методы, чтобы в тестах можно было подставить моки или стабы.
-
Использование Mock-объектов с помощью библиотек, например Mockito, для имитации поведения зависимостей.
-
Избегать создания зависимостей внутри тестируемого класса напрямую (например, через
new), вместо этого получать их извне.
Пример:
public class Service {
private final Repository repository;
public Service(Repository repository) {
this.repository = repository;
}
public String getData() {
return repository.fetchData();
}
}
// В тесте
Repository mockRepo = Mockito.mock(Repository.class);
Mockito.when(mockRepo.fetchData()).thenReturn("test data");
Service service = new Service(mockRepo);
assertEquals("test data", service.getData());
Таким образом, класс становится тестируемым без зависимости от реальных реализаций.