Heim > Java > javaLernprogramm > Warum nicht die JUnit-Methode „assertNotEquals' bereitstellen?

Warum nicht die JUnit-Methode „assertNotEquals' bereitstellen?

黄舟
Freigeben: 2016-12-29 09:14:01
Original
1837 Leute haben es durchsucht

1. Ich schlage die neuen Assertions im AssertThat()-Stil vor, die es einfach machen, verschiedene Negationen zu beschreiben und automatisch eine Beschreibung dessen generiert, was Sie erwarten und was Sie erhalten, wenn die Assertionen fehlschlagen: AssertThat(objectUnderTest,

is(not(someOtherObject)));
assertThat(objectUnderTest, not(someOtherObject));
assertThat(objectUnderTest, not(equalTo(someOtherObject)));
Nach dem Login kopieren

Alle drei Optionen sind gleichwertig. Wählen Sie die aus, die Ihrer Meinung nach am besten lesbar ist (und diese enge Syntax ermöglicht), und Sie benötigen diese Importe:

i

mport static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
Nach dem Login kopieren

2 . Es gibt „assertNotEquals“ in JUnit 4.11:
3. Ich weiß nicht, dass die Asserts-API zum Testen der von ihr bereitgestellten Objekte nicht sehr geeignet ist, und natürlich ist CodeGo.net nicht zu lang, um zu schreiben:

assertFalse(foo.equals(bar));
Nach dem Login kopieren


Mit diesem Argument ist ein Teil der Ausbeute so unglücklich, dass er geteilt werden sollte:

String msg = "Expected <" + foo + "> to be unequal to <" + bar +">";
assertFalse(msg, foo.equals(bar));
Nach dem Login kopieren

Das ist natürlich so, dass die Einführung von AssertNotEqual wahrscheinlich Teil davon sein wird JUnit in der Zukunft: JUnit Issue 22
4. Ich denke, wenn „assertNotEqual“ tatsächlich das ist, was JUnit etwas weniger interessant macht, bedenken Sie, dass dies eine nette Situation ist, wenn das Hinzufügen einer reduzierten API zumindest helfen würde Ich vermute, dass der Grund für die Auslassung darin liegt, dass es zu wenige Multiplayer-Aufrufe gibt. Ich gehe jedoch davon aus, dass es nicht einmal „assertFalse“ gibt, also füge ich am Ende möglicherweise ein positives Ergebnis hinzu, da es nicht schwierig ist Erstens, obwohl ich zugebe, dass es auch elegante Lösungen gibt
5 Sehr spät zur Party, aber ich habe festgestellt, dass das folgende Format für die meisten „nicht gleich“ funktionieren kann. Fälle

static void assertTrue(java.lang.String message, boolean condition)
Nach dem Login kopieren

6. Bei negativen Behauptungen wird im Testbericht ein Diff-Fehler angezeigt

7 . Der Grund dafür ist, dass „assertNotEquals()“ integrierte Befehle sind, ohne sie zuerst in vollwertige Objekte umzuwandeln: Detailliertes Beispiel:
int status = doSomething() ; // expected to return 123
assertTrue("doSomething() returned unexpected status", status != 123 ) ;
Nach dem Login kopieren


vs.

....
assertThat(1, not(equalTo(Integer.valueOf(winningBidderId))));
....
Nach dem Login kopieren

8. Modul-API Konsistenz, warum stellt JUnit nicht „assertNotEquals()“ zur Verfügung, weshalb JUnit es immer mag: „assetStringMatchesTheRegex(regex, str)“ vs. „asserStringDoesntMatchTheRegex(regex, str)“ „asserStringBeginsWith(prefix, str)“ vs. „asserStringDoesntBeginWith(prefix, str)“ d. h. Für eine bestimmte Art von etwas ist kein Ende vorgesehen. Vielleicht möchten Sie Ihrer Argumentation Logik hinzufügen! Es ist besser, Grundelemente wie equalTo(...), is(...), not(...), regex(...) zu testen und diese stattdessen zusammenarbeiten zu lassen, um die Lesbarkeit und Vernunft zu verbessern.

assertNotEqual(1, winningBidderId);
Nach dem Login kopieren

Warum wird die JUnit-Methode „assertNotEquals“ nicht bereitgestellt? Inhalt, weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (m.sbmmt.com)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage