czwartek, grudnia 29, 2016

assertEquals > assertThat ;-)

Przyznam, że zawsze wolałem używać w testach assertEquals, assertTrue, assertFalse i podobnych, niż assertThat().isEqualTo(), assertThat().isTrue() i tak dalej.

Zawsze mi się wydawało assertThat().isEqualTo() mniej czytelne, bo jednak więcej ma literek i trzeba skoczyć do końca linii by zobaczyć co my w ogóle sprawdzamy.

Dziś "odkryłem" poważniejszy problem ;-)

assertThat(actual).isEqualTo(expected) można w trakcie pisania łatwo pomylić z assertThat(actual).equals(expected)...

A to znaczy, że test nam przejdzie nawet gdy actual i expected będą różne ;-)
W końcu czemu test ma się jakoś szczególnie przejąć tym, że wykonaliśmy equals i olaliśmy jego wynik?

Dlatego jednak wolę assertEquals() ;-) Nadal można pomylić kolejność, ale chociaż test nam nie będzie przechodził przez to, że czegoś nie testujemy ;-)


Podobne postybeta
Lepszy test mniejszy i dokładniejszy, niż większy i ogólniejszy ;-)
TDD [Test Driven Development] - genialne, ale trudne :-)
Czemu 100M/2,5yr > 600M/7yr? ;-)
Środek tygodnia
Refactoring bez testów to proszenie się o problemy ;-)