Вступить в клуб →
лёгкаявопросТестирование: JUnit 5, Mockito, Testcontainers

Юнит-тест сервиса скидок падает с NullPointerException внутри проверяемого метода

@ExtendWith(MockitoExtension.class)
class DiscountServiceTest {
    @Mock CustomerRepository customers;
    @InjectMocks DiscountService service;

    @Test
    void vipGetsTenPercent() {
        assertEquals(900, service.priceFor(42L, 1000));
    }
}

Внутри priceFor вызывается customers.findCustomer(42L).isVip(), метод репозитория возвращает Customer. Тест падает с NullPointerException. Почему?

  • Мок без настройки возвращает null для объектов — нужен when(...).thenReturn(...)
  • @InjectMocks не внедряет моки через конструктор
  • MockitoExtension не работает вместе с JUnit 5
  • Мок возвращает случайного клиента, и у него не задано поле vip

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела