Boa noite,
Estou com uma dúvida em relação aos testes de unidade.
Abaixo temos um test do curso de mockito:
@Test
public void deveGerarPagamentoParaUmLeilaoEncerrado() {
RepositorioDeLeiloes leiloes = mock(RepositorioDeLeiloes.class);
RepositorioDePagamentos pagamentos = mock(RepositorioDePagamentos.class);
Leilao leilao = new CriadorDeLeilao()
.para("Playstation")
.lance(new Usuario("José da Silva"), 2000.0)
.lance(new Usuario("Maria Pereira"), 2500.0)
.constroi();
when(leiloes.encerrados()).thenReturn(Arrays.asList(leilao));
// aqui passamos uma instância concreta de Avaliador
GeradorDePagamento gerador =
new GeradorDePagamento(leiloes, pagamentos, new Avaliador());
gerador.gera();
ArgumentCaptor<Pagamento> argumento = ArgumentCaptor.forClass(Pagamento.class);
verify(pagamentos).salvar(argumento.capture());
Pagamento pagamentoGerado = argumento.getValue();
assertEquals(2500.0, pagamentoGerado.getValor(), 0.00001);
}
Um teste de unidade testa, em geral, o comportamento de uma classe. No exemplo acima ele está testando a classe GeradorDePagamentos.
Minha dúvida é: ele fez o mock de todas as classes que são passadas como parâmetro. No caso das outras classes (leilão e usuários), elas não deveriam ter sido mockadas também?
Muito obrigado!!