Sobre testes unitários, capturar variáveis, é possivel?

Estou iniciando estudos na programação de testes unitários, eis a situação:
Quero testar um método como por exemplo:

public void metodoRecebeStringTransformaEmDate(String a){
Date date = parseToDate(a)
...
}

Como eu posso pegar no método de teste essa variável “date” que foi criada dentro do método?
meu objetivo era fazer algo como

assertThat(date, dataEsperada);

OBS: o método de exemplo parseToDate seria private e retornaria uma data.
O método não faz tanto sentido, porém ele mostra qual a minha dúvida.

Geralmente quando escrevemos testes unitários, queremos testar que dados alguns argumentos, a resposta será o que esperamos. Existem muitos pontos negativos em tentar testar o funcionamento interno dos métodos, então essa prática não é recomendada.

No seu caso, você precisaria de um teste para confirmar que parseToDate está retornando a data esperada, e aí na hora de testar o método externo você teria outro teste que somente testa as entradas e as saídas novamente, confiando que parseToDate funcionará corretamente (porque você já tem testes para ele)

1 curtida