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.
org.junit.jupiter junit-jupiter-api 5.3.1 test org.junit.jupiter junit-jupiter-engine 5.3.1 test
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 ein 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 sie 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 Nachricht testAssertTimeout-Methode die Nachricht druckt, aber die AssertTimeoutPreemptively-Methode druckt die Nachricht nicht, sie 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.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3