任何xUnit工具都使用断言进行条件的判断,NUnit自然也不例外,与其它的xUnit(如Junit、phpUnit、pythonUnit)相比,由于大量使用了Generic、Attribute等语言特征,NUnit提供了更为方面、灵活的测试方法,下面先介绍一下断言。
Nunit一共有四个类断言类,分别是Assert、StringAssert、FileAssert和DirectoryAssert,它们都在NUnit.Framework命名空间,其中Assert是常用,也是我们最熟悉的,而另外三个断言类,顾名思义,分别对应于字符串的断言、文件的断言和目录的断言,理论上,仅Assert类就可以完成所有条件的判断,然而,如果合理的运用后面的三个断言,将使代码更加简洁、美观,也更加便于理解和维护。
一:Assert类
对于我们通常的单元测试代码,Assert类中的静态方法就可以完成,其中大家最熟悉的应该是Assert. AreEqual()方法,其实,除了AreEqual,NUnit还提供了众多的比较方式,满足不同的代码要求。
1:相等/不相等判断
AreEqual:判断两个值相等
AreNotEqual:判断两个值不相等
示例:
注意,除了AreEqual/ AreNotEqual,下面几乎所有的方法都支持多态(多种数据类型),以及多参数,除了经常使用的Assert .AreEqual(int a,int b),还有一种典型的参数形式:
Assert.AreEqual(int a,int b,string message);
或者 Assert.XXX(int a,int b,string message);
其中第三个参数是条件不通过时输出的信息,以便于错误的定位
对于double和decimal类型,这两个方法还支持比较时的浮点误差
例如以下代码:
2:类的判断
AreSame:判断两个对象相等
AreNotSame:判断两个对象不相等
Contains:判断是否是否某对象
示例:
IsTrue:判断条件为真
True:同上
IsFalse:判断条件为假
False:同上
IsNull:判断是否为空
Null:同上
IsNotNull:判断不为空间
NotNull:同上
IsNaN:判断数值是Nan
IsEmpty/IsNotEmpty:判断字符串是否为空/不为空
IsEmpty/IsNotEmpty:判断集合是否为空/不为空
示例:
4:比较判断
Greater:大于
GreaterOrEqual:大于等于
Less:小于
LessOrEqual:小于大于
示例:
5:类型判断
IsInstanceOfType/ IsNotInstanceOfType:是/不是某个类的实例(从2.5之后支持泛型)
例如:
Person p = new Person();
p.name = \"a\";
Assert.IsInstanceOf(typeof(Person), p);//通过判断
Assert.IsInstanceOf(typeof(System.String), p);//不能通过判断
本文地址:https://www.stayed.cn/item/24534
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我