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.

Função validateData nos métodos

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