即使你没用过NUnit,我想这段代码也是非常好理解的。限于篇幅,不能详细介绍NUnit,这里只简要说一下。使用NUnit首先要添加对 nunit.framework.dll的引用,然后引入NUnit.Framework命名空间,最后,每个测试类添加 [TestFixture]Attribute,而每个测试方法添加[Test]Attribute,这样就可以在里面写测试代码了。
其中用的最多的是NUnit.Framework.Assert类,它有很多静态方法用于断言,这些断言就是你期望的行为。例如,Assert.AreSame方法断言两个变量是否引用同一个对象,我在上面代码里使用这个方法断言UnityContainer对象的单例性。
完成这个单元测试代码后,要把测试需要的配置文件等添加到XUnit工程里,我这里包括一个unity.cfg.xml,作为Unity的配置文件。下面,编译这个工程。如果编译没有错误,下面就可以跑这个测试了。怎么跑呢,当你安装NUnit时,会同时安装一个NUnit GUI,在开始菜单中找到打开,界面大约是这样子:
图2、NUnit GUI
选择菜单栏的 file -> open project ,打开刚才编译好的SPMS.XUnit.dll,也就是测试工程的dll文件,GUI会自动加载所有测试用例,如下图所示。
图3、加载工程后的NUnit GUI