Юнит-тест сервиса скидок падает с 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
