亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > TestNG
使用TestNG-Abbot實現GUI測試
作者:網絡轉載 發布時間:[ 2013/1/5 13:52:28 ] 推薦標簽:

了解 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 進行清理。

在清單 1 中,我創建了一個 TestNG 測試(實際上并沒有對其做任何測試),該測試在 fixture 中使用 TestNG-Abbot 的 AbbotFixture 對象來存放 Word Finder GUI 的實例。

清單 1. 使用 AbbotFixture 對象定義 WordFindGUITest

public class WordFindGUITest { private AbbotFixture fixture; @BeforeMethod private void initializeGUI() {  fixture = new AbbotFixture();  fixture.showWindow(new WordFind(), new Dimension(269, 184)); } @AfterMethod public void tearDownGUI() {  fixture.cleanUp(); }} 


由于 Word Finder GUI 的用戶可見的行為會影響 圖 2 所示的三個組件,需要通過編程對其進行調整,以確保工作能正常進行。比如,驗證 圖 3 演示的良好的場景,需要執行下面三個步驟:

    獲得對 JTextField 的引用并向其添加一些文本。
    獲得 JButton 的句柄并單擊它。
    獲得對 JLabel 組件的引用并檢驗是否顯示了正確的釋義。

檢驗良好的場景

使用 TestNG-Abbot,可以通過這三個方便的 fixture 類型執行上面所屬的三個步驟:TextComponentFixture 用于 JTextField;ButtonFixture 用于 Find Word 按鈕;LabelFixture 用來驗證 JLabel 中特定的文本。

清單 2 顯示了用于驗證 圖 3 中演示的內容是否可以正常工作的代碼:


清單 2. 測試一個良好場景

@Testpublic void assertDefinitionPresent() { TextComponentFixture text1 = new TextComponentFixture(this.fixture,   "wordValue"); text1.enterText("pugnacious"); ButtonFixture bfix = new ButtonFixture(this.fixture, "findWord"); bfix.click(); LabelFixture fix = new LabelFixture(this.fixture, "definition"); fix.shouldHaveThisText("Combative in nature; belligerent.");} 


注意 fixture 對象通過一個邏輯名稱和特定的 GUI 組件連接在一起。例如,在 Word Finder GUI 中,通過編程將 JButton 對象與 “findWord” 名稱聯系起來。請注意在定義按鈕時,我是如何通過調用組件的 setName() 方法做到這點的,如清單 3 所示:


清單 3. 定義 Find Word 按鈕

findWordButton = new JButton();findWordButton.setBounds(new Rectangle(71, 113, 105, 29));findWordButton.setText("Find Word");findWordButton.setName("findWord"); 


同樣要注意,在 清單 2 中,我是如何通過將 “findWord” 名稱傳遞給 TestNG-Abbot 的 ButtonFixture 對象而獲得對按鈕的引用。“單擊” 按鈕(調用 click 方法)然后使用 TestNG-Abbot 的 LabelFixture 對象插入單詞的釋義,多么酷!不過不要此滿足。

測試意外場景

上一頁123下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 天天干天天拍 | 国产 欧美日韩 在线播放 | 最新亚洲情黄在线网站无广告 | 国产碰碰 | 欧美性精品hd在线观看 | 午夜小视频免费观看 | 国产精品久久女同磨豆腐 | 波多野结衣视频一区 | 巨胸喷奶水www久久久 | 99精品热女视频专线 | 欧美专区日韩 | 国产精品成人在线播放 | 免费高清在线影片一区 | 黄免费网站| 一本大道香蕉大在线最新 | 极品美女啪啪无套 | 日韩美女免费线视频网址 | 国产禁女女网站免费看 | 伦理片在线观看网站资源 | 91在线老王精品免费播放 | 中国一级毛片录像 | 日韩中文字幕高清在线专区 | 中国在线播放精品区 | 精品毛片视频 | 国产精品自产拍视频观看 | 亚洲va乱码一区二区三区 | 夜夜做日日做夜夜爽 | 亚洲不卡在线 | 午夜视频在线免费观看 | 天天草天天爽 | 色迷迷网免费站视频在线观看 | 2020国产成人精品视频人 | 在线另类视频 | 五月综合视频 | 日本久久精品视频 | 天天舔天天摸 | 最新国产成人综合在线观看 | 欧美成人精品三级网站 | 性xxx欧美 | 免费看毛片的网址 | 免费福利在线看黄网站 |