第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

請(qǐng)教一下,自動(dòng)化測(cè)試java怎么鎖定到新打開的窗口?

請(qǐng)教一下,自動(dòng)化測(cè)試java怎么鎖定到新打開的窗口?

自動(dòng)化測(cè)試java怎么鎖定到新打開的窗口
查看完整描述

3 回答

?
翻翻過去那場(chǎng)雪

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊

一般的測(cè)試,尤其是邏輯處理代碼的測(cè)試,JUnit就足夠了。但是一些特殊的測(cè)試,譬如需要連接數(shù)據(jù)庫, 使用瀏覽器,這些測(cè)試單單使用JUnit還不能夠很好地完成任務(wù),于是會(huì)偷懶的牛人又發(fā)明了DbUnit、HTTPUnit這些測(cè)試框架,使得重復(fù)勞動(dòng)大大減少。

但是對(duì)于界面測(cè)試,到現(xiàn)在為止還沒有一個(gè)框架能夠使得界面測(cè)試完全地自動(dòng)化起來。

根據(jù)馬克思主義哲學(xué)原理,這是由事物的內(nèi)因來決定的。由于界面的復(fù)雜性以及界面元素的不確定性,界面的測(cè)試只有在它實(shí)實(shí)在在地呈現(xiàn)在測(cè)試人員的眼里時(shí),測(cè)試才能得出結(jié)果,接著測(cè)試才能繼續(xù)下去。即使現(xiàn)在已經(jīng)有了不少界面測(cè)試的框架,但是這些所謂的框架還是不能夠稱之為框架,只能稱之為工具,因?yàn)槭褂眠@些工具仍然得做很多重復(fù)的工作,而且能夠自動(dòng)化測(cè)試的程度有限。

下文介紹的是進(jìn)行界面測(cè)試的一種技術(shù),或者說是一種方法,也或者說是一種思想。雖然我在前言部分聲明不談方法和思想,只談技術(shù),但在這里還是得談一下方法和思想,實(shí)際上,在界面測(cè)試中,技術(shù)、思想、方法的概念是挺模糊的。相信不久的將來,當(dāng)出現(xiàn)一個(gè)很牛的框架來進(jìn)行界面測(cè)試時(shí),這幾個(gè)概念就會(huì)越來越清晰。

先來把被測(cè)界面代碼寫出來:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071/************************************************************ * 項(xiàng)目名稱:lhjTest * 文件名稱:CoolUiClass.java * 文件描述:CoolUiClass.java * 作者:Administrator * 創(chuàng)建日期:2007-3-24 * 修改記錄: ***********************************************************/package org.lhj.cool.uiunit;import java.awt.Dimension;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;/** * @author Administrator */public class CoolUiClass extends JPanel{    private JTextArea msgTxt = new JTextArea(400320);         private JButton coolBtn = new JButton("Cool");         public CoolUiClass()    {        this.setLayout(new GridBagLayout());        this.setMinimumSize(new Dimension(400350));        this.setPreferredSize(new Dimension(400350));                 coolBtn.setMinimumSize(new Dimension(8021));        coolBtn.setPreferredSize(new Dimension(8021));                 JScrollPane scrollPane = new JScrollPane(msgTxt);        scrollPane.setMinimumSize(new Dimension(400320));        scrollPane.setPreferredSize(new Dimension(400320));                 this.add(scrollPane, new GridBagConstraints(00110.00.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5555), 00));        this.add(coolBtn, new GridBagConstraints(01110.00.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5555), 00));                 coolBtn.addActionListener(new ActionListener()        {            public void actionPerformed(ActionEvent arg0)            {                appendText();            }                     });    }    protected void appendText()    {        msgTxt.append("cool ");    }    /**     * test the calss in main,use your eye to test.     * @param args     */    public static void main(String[] args)    {        JFrame frm = new JFrame("CoolUiClass");        frm.getContentPane().add(new CoolUiClass());        frm.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);        frm.pack();        frm.setVisible(true);    }}


簡(jiǎn)單地運(yùn)行以下main方法,界面如下:

這其實(shí)已經(jīng)在測(cè)試界面了,我在main函數(shù)里頭寫的就是測(cè)試代碼,對(duì)于界面顯示的測(cè)試,就這幾行代碼就足夠了。你這時(shí)候是不是覺得:這也忒容易了,沒什么難度。但我得告訴你,這才是剛剛開始。

界面除了顯示,更復(fù)雜的是要進(jìn)行事件處理,每一個(gè)界面控件都有可能是事件源,一個(gè)事件得引起一系列的操作,而且是對(duì)于界面的操作。這就跟一般的函數(shù)的測(cè)試相差甚大了,一般來說,函數(shù)的測(cè)試就是輸入一個(gè)參數(shù),然后判斷輸出參數(shù),輸出參數(shù)無非就那幾種情況,要么拋異常、要么返回空、要么返回具體值。而界面的事件處理一般會(huì)改變很多個(gè)控件的顯示,而且控件處于不同的狀態(tài)時(shí)改變的情況也不一定是一樣的,所以要測(cè)試處理是否正確,得判斷多個(gè)值,而且得根據(jù)控件之前的狀態(tài)來判斷當(dāng)前顯示是否正確??吹竭@,你似乎感覺無從下手了是吧。幸虧,界面測(cè)試有其方便性,我們可以直接拿眼睛判斷界面上顯示是否正確了,雖然這樣的測(cè)試方法無法保證完全正確,但是卻很高效。在界面測(cè)試中,拿眼睛進(jìn)行判斷比拿機(jī)器進(jìn)行判斷肯定效率要高的多。

如果緊緊是界面邏輯的測(cè)試,用眼睛來測(cè)(我稱之為目測(cè)法)已經(jīng)足夠了,可以很高效地發(fā)現(xiàn)問題。但是如果界面上用到的數(shù)據(jù)是來自于其它地方(譬如說是后臺(tái)),那么在main方法里還不能夠?qū)懗鐾暾臏y(cè)試代碼。這時(shí)候我們就需要一種方法來滿足這種需求,其實(shí)下面的方法才是目測(cè)法的精髓:將與界面處理邏輯無關(guān)的代碼抽出來,例如上面appendText(這里僅僅舉個(gè)例子,appendText實(shí)際上包含了界面處理邏輯,實(shí)際上只需要把非界面處理邏輯代碼抽出來,例如文件操作,訪問后臺(tái),數(shù)據(jù)庫操作這些情況就應(yīng)該這樣做)的形式,然后使用繼承的方式,將非界面處理邏輯代碼給替換成自己需要的數(shù)據(jù)(俗稱假數(shù)據(jù)),這樣一來,界面處理邏輯代碼就可以得到很好的測(cè)試。見以下代碼:

1234567891011121314151617181920212223242526272829303132333435363738394041/************************************************************ * Project Name: lhjTest * File Name   : CoolUiClassETest.java * File Desc   : CoolUiClassETest.java * Author      : Administrator * Create      : 2007-3-24 * Modify: ***********************************************************/package org.lhj.cool.uiunit;import javax.swing.JFrame;import org.lhj.cool.uiunit.CoolUiClass;/** * @author Administrator */public class CoolUiClassETest extends CoolUiClass{    /* (non-Javadoc)     * @see org.lhj.cool.uiunit.CoolUiClass#appendText()     */    @Override    protected void appendText()    {        // call the super method twice        super.appendText();        super.appendText();    }    /**     * test the calss in main,use your eye to test.So this method calls Eye Test.     * the eyt test method's idea is extends the test calss and overrride somemethod so      * that you can expect what you need.     * @param args     */    public static void main(String[] args)    {        JFrame frm = new JFrame("CoolUiClassETest");        frm.getContentPane().add(new CoolUiClassETest());        frm.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);        frm.pack();        frm.setVisible(true);    }}




查看完整回答
反對(duì) 回復(fù) 2019-11-24
  • 3 回答
  • 0 關(guān)注
  • 873 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)