Rumah > Java > javaTutorial > teks badan

Apakah perbezaan utama antara assertTimeout dan assertTimeoutPreemptively?

WBOY
Lepaskan: 2024-07-16 11:42:42
asal
717 orang telah melayarinya

Dalam catatan blog ini, saya akan menerangkan apakah perbezaan utama antara kaedah ini. Pertama sekali mengapa kita menggunakan kaedah ini. Kaedah ini berguna apabila kami menguji prestasi kaedah kami atau kami ingin tahu berapa lama masa yang diambil oleh kaedah kami untuk diselesaikan.

Bagaimana kaedah ini berfungsi?

Mula-mula kita perlu memberi masa kaedah ujian kita, selepas itu ujian ini melaksanakan operasi dalam ujian. Jika operasi ini mengambil masa yang lebih lama daripada yang ditentukan dan kemudian ujian ini akan gagal.

Perbezaan antara assertTimeout dan assertTimeoutPreemptively

Baiklah sekarang kami tahu apakah kaedah ini, mengapa kami menggunakannya dalam kaedah ujian kami. Kemudian kita mesti tahu perbezaannya.

Biar saya terangkan secara ringkas. kaedah assertTimeout mengira masa yang kami berikan, jika kaedah ujian kami mengambil masa lebih lama daripada yang ditentukan, ujian ini akan gagal selepas semua operasi selesai. Walau bagaimanapun, jika kaedah assertTimeoutPreemptively mengambil masa lebih lama daripada yang ditentukan, kaedah ini akan gagal serta-merta. Dan ia tidak akan menunggu untuk semua proses selesai, kami akan menguji ini dalam projek dalam langkah seterusnya.

Ujian

Mula-mula buka IDE kegemaran anda. Saya membuka Intellij Idea kerana IDE ini sangat popular di kalangan pembangun Java. Sudah tentu anda boleh menggunakan IDE kegemaran seperti Eclipse, Netbeans yang mana satu yang anda suka.

Sekarang buat projek Maven baharu dan tambahkan 2 kebergantungan ini pada fail pom.xml anda.

<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>
Salin selepas log masuk

Selepas menambah ini buka folder src/test/java dan

Buat kelas baharu dan berikan nama apa sahaja yang anda mahu, saya akan berikan TimeoutTest.

Buat 2 kaedah ujian, satu daripadanya menguji assertTimeout dan satu lagi menguji assertTimeoutPreemptively.

assertTimeout and assertTimeoutPreemptively

Selepas itu saya memberikan tempoh dan menambah mesej cetakan mudah.

Informational messages

Saya menambah kaedah Thread.sleep() dan Thread tidur 8000 ms ( 8 saat). Tetapi 2 kaedah ini akan gagal kerana kaedah ini mengambil masa lebih lama daripada 3 saat. Biar saya menguji kaedah ini untuk memahami dengan lebih baik.

result of methods

Dan anda melihat kaedah testAssertTimeout mengambil masa 8s 3ms kerana kaedah ini menunggu untuk menyelesaikan semua operasi, tetapi yang satu lagi mengambil masa 3s 45ms, dan ia tidak menunggu untuk menyelesaikan proses lain , ia gagal serta-merta.

Anda boleh melihat kaedah testAssertTimeout mesej mencetak mesej tetapi kaedah assertTimeoutPreemptively tidak mencetak mesej, ia mengabaikan operasi lain.

Kesimpulan

Dalam siaran ini kita bercakap tentang perbezaan utama antara assertTimeout dan assertTimeoutPreemptively.

Akhirnya, kod tersedia di Github.

Jaga diri anda, jumpa lagi.

Atas ialah kandungan terperinci Apakah perbezaan utama antara assertTimeout dan assertTimeoutPreemptively?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!