• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • (二)詳細講解在Spring中進行集成測試

    發表于:2009-05-21來源:作者:點擊數: 標簽:講解Springspring
    Spring提供的 測試 幫助類 Spring在org.springframework.test包中為測試提供了幾個有用的類,它們都是J Unit Test Case的子類。通過層層擴展,不斷豐富測試的功能,我們可以通過下圖了解這些類的繼承關系: 圖 1 Spring 測試工具 類 下面,我們來逐個了解這

    Spring提供的測試幫助類

            Spring在org.springframework.test包中為測試提供了幾個有用的類,它們都是JUnit TestCase的子類。通過層層擴展,不斷豐富測試的功能,我們可以通過下圖了解這些類的繼承關系: 
       

    圖 1 Spring測試工具

            下面,我們來逐個了解這棵承繼類樹中每個節點測試類的功用,第一個要認識的是直接擴展于TestCase的ConditionalTestCase測試類。

    ConditionalTestCase

            如果你直接通過擴展TestCase創建測試用例,則所有帶test前綴的測試方法都會被毫無例外地執行。而ConditionalTestCase可以讓你在某些情況下,有選擇地關閉掉一些測試方法,不讓他們在測試用例中執行。這給開發者帶來了很大的靈活性,因為他們可以在某次測試中關閉掉一些測試方法,而僅運行當前特別關注的測試方法,將問題域聚集到一定范圍內。 
            如果你要關閉某個測試方法行,僅需實現ConditionalTestCase的 isDisabledInThisEnvironment(String testMethodName)方法就可以了,ConditionalTestCase在運行每一個測試方法前會根據isDisabledInThisEnvironment()方法判斷是簡單放棄目標方法的運行,還是按正常方式執行之。該方法默認情況下對所有的測試方法都返回false,也即執行所有的測試方法。讓我們來看一個具體例子:
    代碼清單 4 ConditionalTest1:有條件執行測試方法 package com.baobaotao.test;
    import org.springframework.test.ConditionalTestCase;
    public class ConditionalTest1 extends ConditionalTestCase {
    ①被忽略不執行的測試方法
    private static String[] IGNORED_METHODS = {"testMethod1","testMethod3"};
    @Override
    protected boolean isDisabledInThisEnvironment(String testMethodName) {②所有在
    for (String method : IGNORED_METHODS) { IGNORED_METHODS數組中
    if (method.equals(testMethodName)) { 的方法都忽略執行。
    return true;
    }
    }
    return false;
    }
    public void testMethod1(){ ③不執行
    System.out.println("method1");
    }
    public void testMethod2(){ ④執行
    System.out.println("method2");
    }
    public void testMethod3(){ ⑤不執行
    System.out.println("method3");
    }
    }

            如果我們直接承繼JUnit的TestCase,③、④及⑤處的三個測試方法都會被執行,但現在我們通過繼承ConditionalTestCase編寫測試類,并覆蓋了isDisabledInThisEnvironment()方法,當測試方法名位于IGNORED_METHODS數組中時,測試方法就被旁路掉了。因此當運行ConditionalTest1時,你會發現只有④處的testMethod2()測試方法得到了執行,其它兩個測試方法看起來也被成功執行,只不過會程序日志會給出報告,告訴你哪些測試方法是真正被執行,而哪些方法被“偽執行”的。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>