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