Mam te wartości pochodzące z testu
previousTokenValues[1] = "1378994409108"
currentTokenValues[1] = "1378994416509"
i próbuję
// current timestamp is greater
assertTrue(Long.parseLong(previousTokenValues[1]) > Long.parseLong(currentTokenValues[1]));
Dostaję java.lang.AssertionError
i detailMessage
po debugowaniu jest null
.
Jak mogę zapewnić więcej niż warunki w użyciu JUnit
Odpowiedzi:
Po prostu jak to zrobiłeś.
assertTrue(boolean)
ma również przeciążenie, wassertTrue(String, boolean)
którymString
jest komunikat w przypadku awarii; możesz tego użyć, jeśli chcesz wydrukować, że taki a taki nie był większy niż taki a taki.Możesz również dodać
hamcrest-all
jako zależność, aby użyć dopasowań. Zobacz https://code.google.com/p/hamcrest/wiki/Tutorial :To daje błąd taki jak:
źródło
OrderingComparison
który zawieragreaterThan
: hamcrest.org/JavaHamcrest/javadoc/1.3/org/hamcrest/number/ ...<groupId>org.hamcrest</groupId>
,<artifactId>hamcrest-all</artifactId>
Korzystając z JUnit asserts, zawsze staram się, aby przekaz był ładny i jasny. Oszczędza ogromne ilości czasu podczas debugowania. Robiąc to w ten sposób, unika się konieczności dodawania dodatkowej zależności od hamcrest Matchers.
źródło
możesz też wypróbować poniższe proste rozwiązanie:
źródło
Powinieneś dodać bibliotekę Hamcrest do swojej ścieżki budowania. Zawiera potrzebną Matchers.class, która ma metodę lessThan ().
Zależność jak poniżej.
źródło
to przechodzi dla poprzednich> bieżących wartości
źródło
Alternatywnie, jeśli dodanie dodatkowej biblioteki, takiej jak
hamcrest
nie jest pożądane, logikę można zaimplementować jako metodę narzędziową przy użyciujunit
tylko zależności:źródło
Jak wiem, w tej chwili w JUnit składnia jest następująca:
Oznacza to, że stan jest przed wiadomością.
źródło
Możesz to tak ująć
źródło