Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Testes em objetos compostos

Olá, tenho uma dúvida:

Imagine que na classe BonusService, o método calcularBonus(Funcionario funcionario) deve ser testado. Além dos cenários mostrados no exercício, ainda poderiam haver outros, como por exemplo ser passado um funcionário nulo. Nesse caso, sem problemas, pois posso criar um caso de teste onde verifico se é lançado um NullPointerExcepion, por exemplo.

Mas e se o Funcionario passado não for nulo, mas tem o seu salario nulo, por exemplo? Nesses casos, eu deveria escrever um cenário de teste para isso entre os testes do BonusService, ou deveria desconsiderar esse cenário e considerar que isso já foi previsto nos testes da classe Funcionario?

Obrigado!

2 respostas
solução!

Não lembro bem dos exercícios mas pelo que passou para mim são dois testes diferentes e caso sejam possíveis de ocorrer ambos deveriam ser tratados. Porque um funcionário que não é nulo ainda pode ter o salário nulo e o primeiro teste não trata essa situação.

Os testes tem que ser feitos de forma individual, até por isso que se chamam "unitários",portanto, pra cada cenários que você imaginar deverá ser feito um teste. No caso de um funcionário ter um salário nulo, dentro de um cenário real e considerando as leis trabalhistas, por exemplo, é obrigatório que todo funcionário tenha uma salário, portanto uma regra a ser implementada seria que o campo salário não pode ser null, então poderia fazer uma validação dentro do construtor de funcionário não deixando instanciar um funcionário sem o seu salário, por exempo. Ai você poderia fazer um teste "deveriaLançarExceçãoSeOSalarioForNulo".