У меня возникают проблемы с выяснением, почему Mockito генерирует исключение NullPointerException, когда я говорю макету вернуть true
.
Вот мой тест JUnit:
public class PizzaValidatorTest {
private Pizza meatPizza;
private PizzaValidator validator = new PizzaValidator();
@MockBean
private IngredientRepository ingredientRepository;
@MockBean
private PizzaSizeRepository pizzaSizeRepository;
@Before
public void setUp() throws Exception {
meatPizza = new Pizza();
validator = new PizzaValidator();
}
@Test
public void validateValid() {
when(ingredientRepository.existsById(any())).thenReturn(true);
when(pizzaSizeRepository.existsById(any())).thenReturn(true);
assertTrue(validator.validate(meatPizza));
}
}
Класс PizzaValidator реализован ниже:
@Controller
public class PizzaValidator implements Validator<Pizza> {
@Autowired
IngredientRepository ingredientRepository;
@Autowired
PizzaSizeRepository pizzaSizeRepository;
@Override
public boolean validate(Pizza entity) {
return validatePizza(entity);
}
private boolean validatePizza(Pizza pizza) {
return validPizzaSize(pizza) && validIngredients(pizza);
}
private boolean validPizzaSize(Pizza pizza) {
return pizzaSizeRepository.existsById(pizza.getSizeDesc().getId());
}
private boolean validIngredients(Pizza pizza) {
for (Ingredient ingredient : pizza.getIngredients()) {
if (!ingredientRepository.existsById(ingredient.getId())) {
return false;
}
}
return true;
}
}
По какой-то причине кажется, что Mockito не подключает макетхранилище с моим хранилищем классов, но я не могу понять, почему. Любая помощь приветствуется. Благодаря.