也沒什么可說的吧?下邊是J#代碼:
package NUnitJS;
public class Book
{
private String pid = null;
private String pname = null;
/** @property */
public void set_id(String value)
{
pid = value;
}
/** @property */
public String get_id()
{
return pid;
}
/** @property */
public void set_name(String value)
{
pname = value;
}
/** @property */
public String get_name()
{
return pname;
}
}
可以看到,J#代碼與VB和C#代碼有些不同,因?yàn)镴#的語(yǔ)法是從Java演變過來的,所以其屬性在定義時(shí)被拆成了set_XXX和get_XXX這樣的兩個(gè)方法。但僅有set_XXX和get_XXX這樣的兩個(gè)方法還不夠,還需要使用@property指令進(jìn)行說明。雖然用不用@property指令在調(diào)用時(shí)也沒什么區(qū)別,但你可以嘗試將變量pid和pname更名為id和name,重新編譯;而后再將@property指令去掉,再重新編譯。真的不一樣。
至此,用于測(cè)試的類編寫完成了。
四、編寫測(cè)試用例
這里只用了一個(gè)類進(jìn)行測(cè)試,名為BookTest,以前這樣的類可能需要繼承NUnit.Framework.TestCase類,但現(xiàn)在只需要對(duì)該類使用TestFixture屬性進(jìn)行標(biāo)識(shí)即可,而無須繼承了。BookTest類包含兩個(gè)用例,分別對(duì)應(yīng)該類的testId和testName方法,即每個(gè)方法實(shí)現(xiàn)了一個(gè)測(cè)試用例。注意,在NUnit中,這些用來實(shí)現(xiàn)測(cè)試用例的方法有兩種手段進(jìn)行標(biāo)識(shí):一個(gè)是以testXXX的格式來命名,一個(gè)是使用Test屬性進(jìn)行標(biāo)識(shí)。此外,BookTest還有Init和Dispose這兩個(gè)方法,并分別使用SetUp和TearDown屬性來進(jìn)行標(biāo)識(shí),前者在每個(gè)測(cè)試方法開始之前執(zhí)行,多用來做初始化;后者在每個(gè)測(cè)試方法完成之后執(zhí)行,多用來清理資源。注意,這兩個(gè)方法的名稱并沒有什么限制,但必須用SetUp和TearDown屬性進(jìn)行標(biāo)識(shí)。另外,NUnit還提供了TestFixtureSetUp和TestFixtureTearDown屬性,功能與SetUp和TearDown類似,但前者是在所有用例執(zhí)行之前做初始化、之后做清理,而后者是在每個(gè)用例執(zhí)行之前做初始化、之后做清理。下面開始編寫B(tài)ookTest。