Sobes.tech
Back to questions
Junior — Middle
50

Какие шаги необходимо предпринять для устранения зависимости класса при написании юнит-теста?

Answer from AI

sobes.tech AI

Для устранения зависимости класса при написании юнит-теста обычно применяют следующие шаги:

  1. Использование интерфейсов или абстракций вместо конкретных классов для зависимостей. Это позволяет подменять реальные реализации на тестовые.

  2. Внедрение зависимостей (Dependency Injection) — передача зависимостей через конструктор, сеттеры или методы, чтобы в тестах можно было подставить моки или стабы.

  3. Использование Mock-объектов с помощью библиотек, например Mockito, для имитации поведения зависимостей.

  4. Избегать создания зависимостей внутри тестируемого класса напрямую (например, через 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());

Таким образом, класс становится тестируемым без зависимости от реальных реализаций.