」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > assertTimeout 和assertTimeoutPreemptively 之間的主要差異是什麼?

assertTimeout 和assertTimeoutPreemptively 之間的主要差異是什麼?

發佈於2024-07-30
瀏覽:689

在這篇文章中,我將解釋這些方法的主要差異是什麼。首先我們為什麼要用這個方法。當我們測試我們的方法性能或我們想知道我們的方法需要多長時間才能完成時,此方法將很有用。

這些方法如何運作?

首先我們必須給我們的測試方法時間,然後這些測試執行測試中的操作。如果此操作花費的時間比指定的時間長,則此測試將失敗。

assertTimeout 和assertTimeoutPreemptively 之間的差異

現在我們知道這些方法是什麼,為什麼我們在測試方法中使用它們。那我們就必須知道差別了。

讓我簡單解釋一下。 assertTimeout 方法計算我們給出的時間,如果我們的測試方法花費的時間比指定的時間長,則在所有操作完成後,此測試將失敗。但是,如果assertTimeoutPreemptively 方法花費的時間超過指定的時間,則該方法將立即失敗。而且它不會等待所有流程完成,我們將在下一步的專案中對此進行測試。

測試

先打開你最喜歡的IDE。我打開 Intellij Idea 是因為這個 IDE 在 Java 開發人員中非常受歡迎。當然你可以使用你喜歡的IDE,像是Eclipse,Netbeans,你喜歡哪一個。

現在建立一個新的 Maven 專案並將這 2 個依賴項新增到您的 pom.xml 檔案中。


    org.junit.jupiter
    junit-jupiter-api
    5.3.1
    test


    org.junit.jupiter
    junit-jupiter-engine
    5.3.1
    test

在新增這些後開啟 src/test/java 資料夾和

建立新類別並指定您想要的名稱,我將指定 TimeoutTest。

建立2個測試方法,其中一個測試assertTimeout,另一個測試assertTimeoutPreemptively。

assertTimeout and assertTimeoutPreemptively

之後,我給出持續時間並添加簡單的列印訊息。

Informational messages

我加入了 Thread.sleep() 方法,線程睡眠 8000 毫秒(8 秒)。但這兩種方法都會失敗,因為這些方法需要的時間超過 3 秒。讓我測試一下這些方法以便更好地理解。

result of methods

你看到 testAssertTimeout 方法需要 8s 3ms 因為這個方法等待完成所有操作,但另一個需要 3s 45ms,並且它不等待完成其他過程,它立即失敗。

可以看到訊息testAssertTimeout方法列印了訊息,但是assertTimeoutPreemptively方法沒有列印訊息,它忽略了其他操作。

結論

在這篇文章中我們討論了assertTimeout和assertTimeoutPreemptively之間的主要差異。

終於,程式碼在Github上可用了。

照顧好自己,一會兒見。

版本聲明 本文轉載於:https://dev.to/mammadyahyayev/what-is-the-main-difference-between-asserttimeout-and-asserttimeoutpreemptively-8l?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • Java是否允許多種返回類型:仔細研究通用方法?
    Java是否允許多種返回類型:仔細研究通用方法?
    在java中的多個返回類型:一個誤解介紹,其中foo是自定義類。該方法聲明似乎擁有兩種返回類型:列表和E。但是,情況確實如此嗎? 通用方法:拆開神秘 [方法僅具有單一的返回類型。相反,它採用機制,如鑽石符號“ ”。 分解方法簽名: :本節定義了一個通用類型參數,E。它表示該方法接受了擴展foo類...
    程式設計 發佈於2025-02-07
  • 如何使用PHP將斑點(圖像)正確插入MySQL?
    如何使用PHP將斑點(圖像)正確插入MySQL?
    在嘗試將image存儲在mysql數據庫中時,您可能會遇到一個可能會遇到問題。本指南將提供成功存儲您的圖像數據的解決方案。 easudy values('$ this-> ; image_id','file_get_contents($ tmp_imag...
    程式設計 發佈於2025-02-07
  • 如何使用不同數量列的聯合數據庫表?
    如何使用不同數量列的聯合數據庫表?
    合併列數不同的表 當嘗試合併列數不同的數據庫表時,可能會遇到挑戰。一種直接的方法是在列數較少的表中,為缺失的列追加空值。 例如,考慮兩個表,表 A 和表 B,其中表 A 的列數多於表 B。為了合併這些表,同時處理表 B 中缺失的列,請按照以下步驟操作: 確定表 B 中缺失的列,並將它們添加到表的...
    程式設計 發佈於2025-02-07
  • 如何將數據插入MySQL:相當於MS SQL的散裝插入物?
    如何將數據插入MySQL:相當於MS SQL的散裝插入物?
    在MySQL中插入:在數據庫管理的領域中拆開其等效於MS SQL 的等價,有效數據加載是必不可少的。 Microsoft SQL Server擁有批量插入命令,用於迅速從文本文件中導入數據。同樣,MySQL提供了一個類似的解決方案來完成此任務。 在MySQL中執行批量插入操作,使用的主要技術是負...
    程式設計 發佈於2025-02-07
  • 如何使用char_length()在mySQL中按字符串長度對數據進行排序?
    如何使用char_length()在mySQL中按字符串長度對數據進行排序?
    [2使用內置的char_length()function。 char_length()和length() 此查詢將從指定的表中檢索所有行,並基於上升順序對它們進行排序指定列的字符長度。帶有更長字符串的行將出現在結果的底部。
    程式設計 發佈於2025-02-07
  • 如何使用LOAD_FILE故障排除MySQL Blob加載問題?
    如何使用LOAD_FILE故障排除MySQL Blob加載問題?
    加載文件加載到mysql blobs中,帶有load_file ,假設您會遇到問題,將文件加載到mysql blob中,專門使用load_file函數。如文檔中概述的,該功能的功能需要在服務器上滿足某些條件。這些條件包括:[在服務器主機文件對所有用戶的訪問性 文件大小以下下方的max_allowe...
    程式設計 發佈於2025-02-07
  • 為什麼使用Firefox後退按鈕時JavaScript執行停止?
    為什麼使用Firefox後退按鈕時JavaScript執行停止?
    導航歷史記錄問題:JavaScript使用Firefox Back Back 此行為是由瀏覽器緩存JavaScript資源引起的。 To resolve this issue and ensure scripts execute on subsequent page visits, Firefox...
    程式設計 發佈於2025-02-07
  • 如何在Java列表中有效計算元素的發生?
    如何在Java列表中有效計算元素的發生?
    計數列表中的元素出現在列表 中,在java編程中,列舉列表中列舉元素出現的任務來自列表。為此,收集框架提供了全面的工具套件。 在這種情況下,Batocurrences變量將保持值3,代表動物列表中的“ BAT”出現的數量。 &&& [此方法是簡單的,可以得出準確的結果,使其成為計算列表中元素出現的...
    程式設計 發佈於2025-02-07
  • 如何在附帶的SQLite數據庫中訪問表和行?
    如何在附帶的SQLite數據庫中訪問表和行?
    [2 [2 本指南詳細介紹瞭如何在附加的SQLite數據庫中訪問表和行。 附加 [2 1。在附件數據庫中識別表: 使用sqlite3命令行工具。 。表命令在主數據庫中顯示所有表格,包括附加數據庫中的所有表。 2。檢查表結構: 使用命令 3。檢索表數據: 使用SQL查詢從表中檢索所有...
    程式設計 發佈於2025-02-07
  • 如何使用fetch api將形成數據以\“ application/x-www-form-urlencoded \”的形式發布?
    如何使用fetch api將形成數據以\“ application/x-www-form-urlencoded \”的形式發布?
    在使用FECH API中的FormData接口來發布表單數據時,使用fetch api ,對[1]); } ,使用實驗方法: 使用fetch api:將post請求發送到urlsearchparams對象。請勿指定內容類型標頭,因為默認值將為“ application/x-www-form-ur...
    程式設計 發佈於2025-02-07
  • \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    使用(1)而不是(;;)會導致無限循環的性能差異? 現代編譯器,(1)和(;;)之間沒有性能差異。 是如何實現這些循環的技術分析在編譯器中: perl: S-> 7 8 unstack v-> 4 -e語法ok 在GCC中,兩者都循環到相同的彙編代碼中,如下所示:。 globl t_時 ...
    程式設計 發佈於2025-02-07
  • 為什麼儘管有效代碼,為什麼在PHP中捕獲輸入?
    為什麼儘管有效代碼,為什麼在PHP中捕獲輸入?
    [2 _post ['ss'];? > 的目的是從單擊提交按鈕時,文本框並顯示。但是,輸出保持空白。當方法=“ get”無縫工作時,方法=“ post”構成問題。 檢查action屬性:如果您正在刷新頁面,請將操作屬性設置為空字符串,例如] action ='&...
    程式設計 發佈於2025-02-07
  • 如何在整個HTML文檔中設計特定元素類型的第一個實例?
    如何在整個HTML文檔中設計特定元素類型的第一個實例?
    [2單獨使用CSS,整個HTML文檔可能是一個挑戰。 the:第一型偽級僅限於與其父元素中類型的第一個元素匹配。 以下CSS將使用添加的類樣式的第一個段落: }
    程式設計 發佈於2025-02-07
  • 如何使用替換指令在GO MOD中解析模塊路徑差異?
    如何使用替換指令在GO MOD中解析模塊路徑差異?
    克服go mod中的模塊路徑差異 coreos/bbolt:github.com/coreos/ [email受保護]:解析go.mod:模塊將其路徑聲明為:go.etcd.io/bbolt `要解決此問題,您可以在go.mod文件中使用替換指令。只需在go.mod的末尾添加以下行:[&& &...
    程式設計 發佈於2025-02-07
  • 哪種方法更有效地用於點 - 填點檢測:射線跟踪或matplotlib \的路徑contains_points?
    哪種方法更有效地用於點 - 填點檢測:射線跟踪或matplotlib \的路徑contains_points?
    在Python 射線tracing方法Matplotlib's path.contains_points FunctionMatplotlib's path.contains_points function employs a路徑對象表示多邊形。它檢查給定點是否位於定義路徑內。 T...
    程式設計 發佈於2025-02-07

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3