追求代碼質量: 使用 TestNG-Abbot 實現自動化 GUI 測試[2] 軟件測試
Word Finder GUI
為了使您了解 TestNG-Abbot 工作原理,我創建了一個簡單的 GUI,它執行一種功能 —— 在底層字典(也就是一個數據庫)中查閱一個給定的單詞并顯示其釋義。不管該應用程序實際的代碼如何,測試該 GUI 用戶場景包括三個步驟:
在文本框中輸入一個單詞。
單擊 Find Word 按鈕。
驗證是否給出了該單詞釋義。
當然,也存在一些極端的例子,比如一個用戶按下了 Find Word 按鈕但沒有輸入單詞,或者,用戶輸入了一個無效的單詞。我將通過一些其他的測試案例說明如何處理這類場景。
了解 GUI
圖 1 顯示了已啟動的 Word Finder GUI。記住該 GUI 之所以簡單只有一個原因:它演示了 TestNG-Abbot 的三個 fixture 類以及一些要引導的測試用例!

圖 1. Word Finder GUI
當使用 TestNG-Abbot 進行測試時,應該首先檢查 GUI 的組件。Word Finder GUI 由圖 2 所示的三個組件組成:

圖 2. Word Finder GUI 的組件
如您所見,Word Finder GUI 由一個 JTextField(用來輸入要查詢的單詞)、一個 JButton(使 GUI 從字典數據庫中獲取釋義)和一個 JEditorPane (顯示釋義)組成。
在良好的場景中,如果我輸入 pugnacious 然后單擊 Find Word 按鈕,JEditorPane 將顯示 “Combative in nature; belligerent”,如圖 3 所示:

圖 3. 良好的場景 —— 工作良好!
使用 TestNG-Abbot 進行測試
要開始使用 TestNG-Abbot,需要創建一個常規的測試 fixture,它將使用 TestNG 的 BeforeMethod 和 AfterMethod 注釋為您的 GUI 創建一個實例。TestNG-Abbot 框架附帶了一個方便的 AbbotFixture 對象,它簡化了 GUI 組件的使用,實際上也引導了整個測試過程。要在測試 fixture 中使用該對象,需要在測試前將一個 GUI 實例傳遞給 fixture 對象的 showWindow() 方法,然后使用名為 cleanUp() 的方法對 fixture 進行清理。
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/