In diesem Blogbeitrag werde ich erklären, was der Hauptunterschied zwischen diesen Methoden ist. Zunächst einmal: Warum verwenden wir diese Methoden? Diese Methode ist nützlich, wenn wir die Leistung unserer Methode testen oder wissen möchten, wie lange die Fertigstellung unserer Methode dauert.
Zuerst müssen wir unserer Testmethode Zeit geben, danach führen diese Tests Operationen im Test aus. Wenn dieser Vorgang länger dauert als angegeben, schlägt dieser Test fehl.
Okay, jetzt wissen wir, was diese Methoden sind und warum wir sie in unseren Testmethoden verwenden. Dann müssen wir den Unterschied kennen.
Lassen Sie es mich kurz erklären. Die Methode „assertimeout“ zählt die von uns angegebene Zeit. Wenn unsere Testmethode länger als angegeben dauert, schlägt dieser Test fehl, nachdem alle Vorgänge abgeschlossen sind. Wenn die Methode „asserTimeoutPreemptively“ jedoch länger als angegeben dauert, schlägt diese Methode sofort fehl. Und es wird nicht darauf gewartet, dass alle Prozesse abgeschlossen sind, sondern wir werden dies im nächsten Schritt im Projekt testen.
Öffnen Sie zunächst Ihre Lieblings-IDE. Ich öffne Intellij Idea, weil diese IDE bei Java-Entwicklern sehr beliebt ist. Natürlich können Sie Ihre Lieblings-IDE wie Eclipse oder Netbeans verwenden, je nachdem, welche Sie bevorzugen.
Erstellen Sie nun ein neues Maven-Projekt und fügen Sie diese beiden Abhängigkeiten zu Ihrer pom.xml-Datei hinzu.
<dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.3.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.3.1</version> <scope>test</scope> </dependency>
Nachdem Sie diese hinzugefügt haben, öffnen Sie den Ordner src/test/java und
Erstellen Sie eine neue Klasse und geben Sie dem Namen einen beliebigen Namen. Ich gebe TimeoutTest.
Erstellen Sie zwei Testmethoden, eine davon testet „asserTimeout“ und die andere testet „asserTimeoutPreemptively“.
Danach gebe ich die Dauer an und füge eine einfache Drucknachricht hinzu.
Ich füge die Thread.sleep()-Methode hinzu und Thread schläft 8000 ms (8 Sekunden). Diese beiden Methoden schlagen jedoch fehl, da sie länger als 3 Sekunden dauern. Lassen Sie mich diese Methoden testen, um es besser zu verstehen.
Und Sie sehen, dass die testAssertTimeout-Methode 8s 3ms benötigt, weil diese Methode auf den Abschluss aller Vorgänge wartet, die andere jedoch 3s 45ms benötigt und nicht darauf wartet, den anderen Prozess abzuschließen , es schlägt sofort fehl.
Sie können sehen, dass die testAssertTimeout-Methode der Nachricht die Nachricht druckt, aber die AssertTimeoutPreemptively-Methode druckt die Nachricht nicht, sondern ignoriert andere Vorgänge.
In diesem Beitrag haben wir über den Hauptunterschied zwischen „asserTimeout“ und „asserTimeoutPreemptively“ gesprochen.
Endlich ist der Code auf Github verfügbar.
Pass auf dich auf, bis bald.
Das obige ist der detaillierte Inhalt vonWas ist der Hauptunterschied zwischen „asserTimeout' und „asserTimeoutPreemptively'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!