Exemplos práticos
Vamos imaginar agora, um ProductService. Nele, temos dois métodos: insert e update de um Product.
Cada Product (entidade) tem: id, name e price. E ambos os métodos acima tem uma função dentro deles que chama validateData()
. Ela é responsável por validar se o nome está vazio e se o preço é positivo.
No exemplo agora, implementaremos testes unitários dessa camada de serviço para os dois métodos, considerando os cenários de teste! Aqui, não usaremos nenhuma lib de validação.

O método em questão
protected void validateData(ProductDTO dto) {
if (dto.getName().isBlank()) {
throw new InvalidDataException("Campo nome é vazio ou nulo");
}
if (dto.getPrice() == null || dto.getPrice() <= 0) {
throw new InvalidDataException("Campo preco inválido");
}
return;
}
Atualizado