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

Estou com dúvida no curso de Testes de Unidade e TDD, no exercício 30 do capítulo Testando exceções.

Quando passamos a utilizar o método assertThat do hamcrest no lugar do assertThat, percebi que passamos a não usar mais o parâmetro de desvio, exemplo:

assertEquals(leiloeiro.getMaiorLance(), 200.00, **0.00001**);
assertThat(leiloeiro.getMaiorLance(), equalTo(200.00));

Por que não necessitamos do parâmetro de erro no assertThat?

2 respostas
solução!

Olá Rogerio

Tanto com o assertEquals quanto com o assertThat, a comparação de double pode sofrer problemas de aproximações que por sorte não aconteceram no exercício.

Para utilizar o assertThat com um double, o correto é utilizar o método closeTo ao invés do equalTo:

assertThat(leiloeiro.getMaiorLance(), Mathcers.closeTo(200.0, 0.00001));

Segundo a documentação o método equalTo é equivalente a chamar o equals para fazer a comparação. Para mais informações, consulte o javadoc desses métodos no link http://hamcrest.org/JavaHamcrest/javadoc/1.3/org/hamcrest/Matchers.html

Obrigado Victor!