Я довольно новичок в модульном тестировании и знаю, что для любого не примитивного параметра типа должен быть написан тест, в котором указанный параметр указан как нулевой. Должен ли я также включать отрицательный тест, в котором у параметра есть поле, поле которого, будучи нулевым, может повлиять на тестируемый метод и т. Д.
Например, в коде предусмотрен параметр типаВ корзине есть поле со списком CartLine
с. Этот класс CartLine
имеет поле типа Product, которое, если задано как null в одном из CartLines
, составляющем список CartLine
s, который составляет поле Cart
, предоставляемое в качестве параметра, будетпроизвести NullPointerException
в тестируемом методе. Должен ли я предоставить юнит-тест для этой возможности?
public void updateProductQuantities(Cart cart){
for (CartLine cartLine : cart.getCartLineList()) {
Optional<Product> productOptional = productRepository.findById(cartLine.getProduct().getId());
if (productOptional.isPresent()){
Product product = productOptional.get();
product.setQuantity(product.getQuantity() - cartLine.getQuantity());
if (product.getQuantity()<1){
productRepository.delete(product);
}else {
productRepository.save(product);
}
}
}
}