簡體   English   中英

如何將這些JUnit 3測試轉換為JUnit 4?

[英]How can I convert these JUnit 3 tests to JUnit 4?

我的公司希望離開JUnit 3並開始只使用JUnit 4.另一個實習生和我被賦予了將舊的JUnit 3測試轉換為使用JUnit 4約定的任務。 但是,我正在轉換我正在處理的測試文件時遇到問題。

據我所知,有一個generateTest方法返回一個SSlTest(SSlTest是TestCase的子類)。 返回的SslTest會覆蓋runTest。 runTest包含一個try-catch塊,它啟動兩個線程,clientThread和serverThread(這些都是在testfile中定義的Thread的子類)。 看起來實際的測試是在線程內完成的,因為runTest的其余部分用於捕獲兩個線程的異常。

generateTest由另一個方法generateSuite調用(返回一個TestSuite)。 generateSuite包含一個外部for循環,可以將套件添加到主套件中。 內部for循環使用generateTest為主要套件中的每個套件添加測試。 主套件是該方法返回的內容。

最后,在測試文件的main方法中調用的suite()方法內,設置while循環以使用generateSuite生成套件並將它們添加到更大的套件中。


我在遷移到JUnit 4時找到的唯一指南是更簡單的測試用例。 我現在很迷茫,我公司沒有其他人知道足夠的JUnit 4來幫助我,所以任何提示都會非常感激!

我要做的第一件事就是試圖說服誰給了我一個不必要的任務。 我知道實習生很難,但值得確保此人理解這不是必要的。

說服事實:

  • JUnit 4 jar包含junit.framework和org.junit包結構,因此它向后兼容。
  • JUnit已被廣泛采用。 他們JUnit項目的所有者非常清楚這一點,並不會要求人們重寫所有測試。 換句話說,它們不會僅僅降低兼容性。
  • 實際上試試吧。 認真。 嘗試使用JUnit 4 jar運行現有的測試代碼。 您將看到是否出現任何編譯器錯誤。 如果你這樣做,那些是需要關注的領域。 如果你不這樣做,你有很好的證據可以告訴給你任務的人。

這並不意味着你不必改變任何東西。 這意味着您不必更改大部分代碼。 如果您有自定義運行程序,則需要使用JUnit 4樣式。 您還可能需要classpath suite來收集測試。

將一些測試轉換為JUnit 4也很有價值,因此團隊中的開發人員可以使用一些示例。 但是將它們全部轉換並不能很好地利用時間。

無法發布代碼

沒有代碼,在互聯網上獲得幫助是非常困難的。 我可以理解你的雇主不希望你發布代碼。 (但是他們可能不希望你發布類和方法名稱 - 你做了。)幸運的是,還有另一種選擇。 改為創建一個SSCCE (閱讀鏈接 - 隨着你的工作進展,它會對你有所幫助。)除了更容易閱讀的小例子,它還允許你更改類/方法/等名稱然后你的雇主不會他們的代碼在線。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM