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

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

  • <strong id="5koa6"></strong>
  • 使用EclEmma進行的JAVA代碼測試

    發表于:2007-12-11來源:作者:點擊數: 標簽:單元測試
    為了實驗 EclEmma 的特性,我們首先在 Eclipse 的 Workspace 中建立一個名稱為 test.emma 的新 Java 項目。下面,我們在其中建立一個 HelloWorld 類,其代碼如下所示: 用于 測試 EclEmma 的代碼 package test.emma;public class HelloWorld { /*** @param ar
    為了實驗 EclEmma 的特性,我們首先在 Eclipse 的 Workspace 中建立一個名稱為 test.emma 的新 Java 項目。下面,我們在其中建立一個 HelloWorld 類,其代碼如下所示:

    用于測試 EclEmma 的代碼
    package test.emma;public class HelloWorld {/*** @param args*/public static void main(String[] args) {int rand = (int) (Math.random()*100);if(rand%2==0){System.out.println( "Hello, world! 0");}elseSystem.out.println("Hello, world! 1");int result = rand%2==0? rand+rand:rand*rand;System.out.println(result);}}
    接下來,我們通過 EclEmma 運行 HelloWorld.main() 函數。

    對 Java 應用程序代碼進行測試



    執行完畢之后,我們正在編輯 HelloWorld.java 的窗口將會變成如下所示:
    進行覆蓋測試的結果:


    在 Java 編輯器中,EclEmma 用不同的色彩標示了源代碼的測試情況。其中,綠色的行表示該行代碼被完整的執行,紅色部分表示該行代碼根本沒有被執行,而黃色的行表明該行代碼部分被執行。黃色的行通常出現在單行代碼包含分支的情況,例如 上圖 中的 16 行就顯示為黃色。由于程序中有一個隨機確定的分支,因此讀者的窗口可能與這里稍有不同(11 行或者 14 行中有且只有一個紅色的行)。

    除了在源代碼編輯窗口直接進行著色之外,EclEmma 還提供了一個單獨的視圖來統計程序的覆蓋測試率。

    察看程序的覆蓋測試率:


    EclEmma 提供的 Coverage 視圖能夠分層的顯示代碼的覆蓋測試率, 上圖中的信息表明我們對 HelloWorld 的一次運行覆蓋了大約 68.6% 的代碼。

    想在一次運行中覆蓋所有的代碼通常比較困難,如果能把多次測試的覆蓋數據綜合起來進行察看,那么我們就能更方便的掌握多次測試的測試效果。EclEmma 提供了這樣的功能?,F在,讓我們重復數次對 HelloWorld 的覆蓋測試。我們注意到 Coverage 視圖總是顯示最新完成的一次覆蓋測試。事實上,EclEmma 為我們保存了所有的測試結果。接下來,我們將通過 Coverage 視圖的工具按鈕來結合多次覆蓋測試的結果。

    用于結合多次覆蓋測試結果的工具欄按鈕:




    當我們多次運行 Coverage 之后,我們可以單擊上圖所示工具欄按鈕。之后,一個對話框將被彈出以供用戶選擇需要合并的覆蓋測試。

    選擇需要合并的覆蓋測試結果:


    在合并完成之后,我們可以觀察到 Java 編輯器和 Coverage 視圖中都顯示了合并之后的結果:

    察看合并后的覆蓋測試結果


    最后我們可以看到,通過多次運行覆蓋測試,最終我們的代碼達到了 91.4% 的測試覆蓋率。有趣的是,上圖中第三行代碼被標記為紅色,而此行代碼實際上是不可執行的。奧妙在于,我們沒有生成任何 HelloWorld 類的實例,因此缺省構造函數沒有被調用,而 EclEmma 將這個特殊代碼的覆蓋狀態標記在類聲明的第一行。

    原文轉自: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>