下面修改代碼。VB代碼如下:
	Public Class Book
	Private pid As String = Nothing
	Private pname As String = Nothing
	 
	Public Property id() As String
	Get
	Return pid
	End Get
	Set(ByVal Value As String)
	pid = Value
	End Set
	End Property
	 
	Public Property name() As String
	Get
	Return pname
	End Get
	Set(ByVal Value As String)
	pname = Value
	End Set
	End Property
	End Class
	C#代碼如下:
	using System;
	using System.Collections.Generic;
	using System.Text;
	 
	namespace NUnitCS
	{
	class Book
	{
	private string pid = null;
	private string pname = null;
	 
	public string id
	{
	get
	{
	return pid;
	}
	 
	set
	{
	pid = value;
	}
	}
	 
	public string name
	{
	get
	{
	return pname;
	}
	 
	set
	{
	pname = value;
	}
	}
	}
	}
	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;
	}
	}
	至此,用于測(cè)試的類編寫完成。
	四、編寫測(cè)試用例
	    這里只用了一個(gè)類進(jìn)行測(cè)試,名為BookTest,以前這樣的類可能需要繼承NUnit.Framework.TestCase類,但現(xiàn)在只需要對(duì)該類使用TestFixture屬性進(jìn)行標(biāo)識(shí)即可,而無(wú)須繼承了。BookTest類包含兩個(gè)用例,分別對(duì)應(yīng)該類的testId和testName方法,即每個(gè)方法實(shí)現(xiàn)了一個(gè)測(cè)試用例。注意,在NUnit中,這些用來(lái)實(shí)現(xiàn)測(cè)試用例的方法有兩種手段進(jìn)行標(biāo)識(shí):一個(gè)是以testXXX的格式來(lái)命名,一個(gè)是使用Test屬性進(jìn)行標(biāo)識(shí)。此外,BookTest還有Init和Dispose這兩個(gè)方法,并分別使用SetUp和TearDown屬性來(lái)進(jìn)行標(biāo)識(shí),前者在每個(gè)測(cè)試方法開(kāi)始之前執(zhí)行,多用來(lái)做初始化;后者在每個(gè)測(cè)試方法完成之后執(zhí)行,多用來(lái)清理資源。注意,這兩個(gè)方法的名稱并沒(méi)有什么限制,但必須用SetUp和TearDown屬性進(jìn)行標(biāo)識(shí)。另外,NUnit還提供了TestFixtureSetUp和TestFixtureTearDown屬性,功能與SetUp和TearDown類似,但前者是在所有用例執(zhí)行之前做初始化、之后做清理,而后者是在每個(gè)用例執(zhí)行之前做初始化、之后做清理。下面開(kāi)始編寫B(tài)ookTest。