您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
JUnit源碼分析:Command模式和Composite模式
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/5/28 15:54:28 ] 推薦標(biāo)簽:

4.效果:
1)命令模式將調(diào)用操作的對象與如何實現(xiàn)該操作的對象解耦。
2)將命令當(dāng)成一個頭等對象,它們可以像一般對象那樣進(jìn)行操縱和擴(kuò)展
3)可以將多個命令復(fù)合成一個命令,與Composite模式結(jié)合使用
4)增加新的命令很容易,隔離對現(xiàn)有類的影響
5)可以與備忘錄模式配合,實現(xiàn)撤銷功能。

    在了解了Command模式之后,那我們來看JUnit的源碼,Test接口是命令的抽象接口,而TestCase和TestSuite是具體的命令
<!---->//抽象命令接口
package junit.framework;

/**
 * A <em>Test</em> can be run and collect its results.
 *
 * @see TestResult
 */
public interface Test {

    /**
     * Counts the number of test cases that will be run by this test.
     */
    public abstract int countTestCases();
    /**
     * Runs a test and collects its result in a TestResult instance.
     */
    public abstract void run(TestResult result);
}

//具體命令一

public abstract class TestCase extends Assert implements Test {
    /**
     * the name of the test case
     */
    private final String fName;
    /**
  

//具體命令二

public class TestSuite implements Test {
    

由此帶來的好處:
1.客戶無需使用任何條件語句去判斷測試的類型,可以用統(tǒng)一的方式調(diào)用測試和測試套件,解除了客戶與具體測試子類的耦合
2.如果要增加新的TestCase也很容易,實現(xiàn)Test接口即可,不會影響到其他類。
3.很明顯,TestSuite是通過組合多個TestCase的復(fù)合命令,這里使用到了Composite模式(組合)
4.盡管未實現(xiàn)redo和undo操作,但將來也很容易加入并實現(xiàn)。

    我們上面說到TestSuite組合了多個TestCase,應(yīng)用到了Composite模式,那什么是Composite模式呢?具體來了解下。

Composite模式

composite模式是對象結(jié)構(gòu)型模式之一。
1.意圖:將對象組合成樹形結(jié)構(gòu)以表示“部分——整體”的層次結(jié)構(gòu)。使得用戶對單個對象和組合結(jié)構(gòu)的使用具有一致性。

2.適用場景:
1)想表示對象的部分-整體層次
2)希望用戶能夠統(tǒng)一地使用組合結(jié)構(gòu)和單個對象。具體到JUnit源碼,我們是希望用戶能夠統(tǒng)一地方式使用TestCase和TestSuite

上一頁123下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd