亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-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
主站蜘蛛池模板: 亚洲第一网址 | 成人在线观看视频网站 | 一区二区三区视频在线观看 | 欧美激情人成日本在线视频 | 亚洲精品v欧美精品动漫精品 | 欧美一区日韩一区中文字幕页 | 午夜精品福利影院 | 欧美18性欧美丶黑吊 | 亚洲欧美日韩伦中文 | 国产人成午夜免费噼啪视频 | 欧美亚洲91 | 综合久久久久久 | 亚洲天堂在线观看视频 | 亚欧有色在线观看免费版高清 | 人人艹人人射 | 黄色影院网站 | 在线资源天堂 | 天天爱天天色天天干 | 国产小视频在线观看免费 | 国产一级免费在线观看 | avtt天堂网永久资源手机版 | 最近更新2019中文国语字幕 | 午夜视频免费观看 | 欧美系列第一页 | 国产精品伦一区二区三级视频 | 日韩欧美h | 午夜高清 | 男女一起www免费高清视频 | 网站一级片 | 国产高清天干天天美女 | 天天综合天天看夜夜添狠狠玩 | 热99精品在线 | 成人免费视频播放 | 午夜影院污网页入口 | 亚洲性hd| yy午夜私人影院免费 | 最近中文字幕完整国语 | 18在线网站| 欧美最猛同性video | 国产精品欧美日韩视频一区 | 深夜福利动态 |