Ich habe diese Werte aus einem Test
previousTokenValues[1] = "1378994409108"
currentTokenValues[1] = "1378994416509"
und ich versuche es
// current timestamp is greater
assertTrue(Long.parseLong(previousTokenValues[1]) > Long.parseLong(currentTokenValues[1]));
Ich bekomme das java.lang.AssertionError
und detailMessage
beim Debuggen ist null
.
Wie kann ich bei der Verwendung mehr als die Bedingungen behaupten? JUnit
Antworten:
Wie du es gemacht hast.
assertTrue(boolean)
hat auch eine Überlastung,assertTrue(String, boolean)
bei derString
die Meldung im Fehlerfall angezeigt wird; Sie können das verwenden, wenn Sie drucken möchten, dass das und das nicht größer als das und das war.Sie können auch
hamcrest-all
als Abhängigkeit hinzufügen , um Matcher zu verwenden. Siehe https://code.google.com/p/hamcrest/wiki/Tutorial :Das gibt einen Fehler wie:
quelle
OrderingComparison
der enthältgreaterThan
: hamcrest.org/JavaHamcrest/javadoc/1.3/org/hamcrest/number/…<groupId>org.hamcrest</groupId>
,<artifactId>hamcrest-all</artifactId>
Wenn ich JUnit Asserts verwende, mache ich die Nachricht immer schön und klar. Dies spart enorm viel Zeit beim Debuggen. Auf diese Weise wird vermieden, dass eine zusätzliche Abhängigkeit von Hamcrest-Matchern hinzugefügt werden muss.
quelle
Sie können auch unten einfache Lösung versuchen:
quelle
Sie sollten Ihrem Build-Pfad die Hamcrest-Bibliothek hinzufügen. Es enthält die benötigte Matchers.class mit der lessThan () -Methode.
Abhängigkeit wie unten.
quelle
Dies gilt für vorherige> aktuelle Werte
quelle
Wenn alternativ eine zusätzliche Bibliothek hinzugefügt werden kann, wie dies
hamcrest
nicht wünschenswert ist, kann die Logik als Dienstprogrammmethodejunit
nur unter Verwendung der Abhängigkeit implementiert werden :quelle
Wie ich im Moment in JUnit erkenne, lautet die Syntax wie folgt:
Bedeutet, dass die Bedingung vor der Nachricht steht.
quelle
Sie können es so ausdrücken
quelle