,我們來(lái)介紹兩種軟件測(cè)試框架——JUnit和NUnit。
一、JUnit:
在介紹JUnit之前,先來(lái)簡(jiǎn)單說(shuō)一下Java類(lèi)的測(cè)試。Java 類(lèi)測(cè)試是 Java 應(yīng)用開(kāi)發(fā)的重要步驟。Java 類(lèi)測(cè)試分為基本類(lèi)測(cè)試、組合類(lèi)測(cè)試和分布式組件測(cè)試。而Junit 工具主要針對(duì) Java 基本類(lèi)測(cè)試和組合類(lèi)測(cè)試。
Java基本類(lèi)的特點(diǎn)是,類(lèi)的成員變量類(lèi)型、類(lèi)方法的參數(shù)類(lèi)型是 Java 基本類(lèi)型。組合類(lèi)的特點(diǎn)是,類(lèi)的成員變量類(lèi)型可以是非 Java 基本類(lèi)型的類(lèi)、類(lèi)方法的參數(shù)類(lèi)型可以是非 Java 基本類(lèi)型。Java基本類(lèi)測(cè)試是 Java 組合類(lèi)測(cè)試的基礎(chǔ)。而Junit具有一個(gè)回歸測(cè)試框架,它為Java軟件測(cè)試人員測(cè)試基本類(lèi)、組合類(lèi)提供方便。
Junit 主要由 framework、runner、textui、swingui、awtui 包構(gòu)成。Framework 包中包含了 Junit 測(cè)試類(lèi)所需的所有基類(lèi),它是整個(gè) Junit 的基礎(chǔ)框架。Runner包作用分為兩部分,定義 Junit 測(cè)試框架的交互形式以及完成測(cè)試類(lèi)的載入工作。Textui、Swingui、Awtui 包則是Junit中共有的3個(gè)運(yùn)行器。其中Textui測(cè)試是快的,也是JUnit推薦的測(cè)試執(zhí)行模式。
二、NUnit:
NUnit是由 JUnit改造而來(lái)的。NUnit框架中主要有 5 個(gè)對(duì)象類(lèi):Test類(lèi)、TestM ethod 類(lèi) 、TestSuite 類(lèi) 、TestResult 類(lèi) 和Assert類(lèi)。Test類(lèi)的實(shí)例對(duì)象指一個(gè)測(cè)試案例。TestMethod 類(lèi)繼承自 Test類(lèi),所有測(cè)試實(shí)例的運(yùn)行方法終在該類(lèi)中實(shí)現(xiàn)。TestSuit類(lèi)的實(shí)例對(duì)象指一組測(cè)試案例。TestResult類(lèi)的實(shí)例指TestCase 運(yùn)行的結(jié)果,它是一個(gè)抽象類(lèi),在 NUnit中,有兩個(gè)類(lèi)繼承自 TestResult類(lèi):TestCaseResult和 Test-SuiteResult。
NUnit框架的基本原理如下:將所有標(biāo)有測(cè)試屬性的類(lèi)和方法放到一個(gè)TestSuiteTreeView中,當(dāng)選中某個(gè)節(jié)點(diǎn)時(shí),新建一個(gè)當(dāng)前選中節(jié)點(diǎn)的標(biāo)有[TestFixture]屬性的類(lèi)的實(shí)例,然后在 Run 方法中調(diào)用該實(shí)例中的當(dāng)前節(jié)點(diǎn)所表示的測(cè)試方法,運(yùn)行后將測(cè)試結(jié)果存入一個(gè) TestCase Result對(duì)象中,然后在界面的進(jìn)度條中相應(yīng)地作出顯示。