3
respostas

Comparador customizado

Extrapolei o código da classe Lance acrescentando à ela uma propriedade que recebe o instante no qual o lance foi realizado, através da classe construtora. Acontece que, no momento em que vou realizar o assertEquals, os objetos são iguais com exceção dessa propriedade timestamp. Como eu poderia implementar um comparador customizado para a minha classe Lance que ignorasse essa propriedade?

3 respostas

Lucas, qual o propósito desse teste que você quer realizar? Achei um pouco estranha a sua pergunta. Como está o arrange, act e assert atual desse teste? Você quer criar um assert customizado? Se for isso tenho quase certeza que vc não está sabendo realizar as asserções de maneira correta no seu teste.

Diego, o que acontece é que o meu Arrange prepara, para o teste de pegar o maior lance, por exemplo, o array de lances com 100 itens distintos e um objeto sendo uma cópia (mesmo nome e valor) do maior lance presente no array. Acontece que como o construtor da classe seta também esse valor de timestamp e o teste compara todos os campos dos objetos esperado e encontrado, o timestamp será diferente. Eu pensei em extrair do array o maior valor mas aí estaria adicionando complexidade ao teste, tendo que testar o teste, entendeu?

Vou acabar desmembrando o assertEquals para cada elemento dos objetos, ignorando assim o timestamp

Mas é feito dessa maneira, desmembrando para cada elemento, se eu entendi bem. Pode colocar o código do seu teste? Assim posso tentar ajudar melhor.

Você tem um array de lances que é o seu assert, mas como está o seu act? No act você deve realizar alguma ação que te retorne o maior lance desse array e ai no assert você compara se o resultado é igual ao esperado (valor do lance e nome do usuario). Eu acho que o problema está em você não precisar dessa tal cópia, mas só olhando o código para saber se é realmente isso.