C#单元测试小例子
2021-02-16 02:20
步骤简略,特别处进行说明。
以VS2015为例。
1、创建一个解决方案方案,如添加一个ConsoleApplication1的解决方案。
2、在解决方案的默认项目中,添加一个Calc类
3、将Calc设置成public,然后添加一个静态方法。
public class Calc { public static int ADD(int a, int b) { return a + b; } }
4、在ADD的方法上,点右键【创建单元测试】,在弹出的对话框中,选择【测试项目名】和【输出文件】,其他内容选默认即可。自动创建一个方法。
5、补全方法并用断言结尾即可。
namespace ConsoleApplication1.Tests { [TestClass()] public class CalcTests { [TestMethod()] public void ADDTest() { int a = 10, b = 15; int c = Calc.ADD(a, b); Assert.AreEqual(25, c); } } }
6、这时,对于我们要测试的方法上方,就有VS自动添加的测试用例运行状况的提要了。
7、以后修改了这个方法,点击运行测试用例即可。
断言包括以下几种,第一个参数是你的期望值(Except),第二个参数是函数返回或影响程序产生的实际值(Actual)
① Assert.AreEqual
主要是验证函数产生的影响值或返回的值跟预期是否一致,这个方法不适合验证返回的数据集以及集合之类的数据,主要针对字符串,数字等等的单一类型,它还有个泛型重载,这个是比较好的,建议多使用,它还有第三个参数,是一个string型的message,基本上不会用到!
例子:Assert.AreEqual
② Assert.AreNotEqual
没什么要讲的,情况跟上面相反,主要是验证实际值跟期望值不相等的情况!
③ Assert.AreSame
判断实际值跟预期值的类型是否一致!
④ Assert.AreNotSame
跟上面正好相反,测试类型不一致!
⑤ Assert.IsNotNull,Assert.IsNull,Assert.IsTrue,Assert.IsFalse
看这些方法名就知道什么意思了!
⑥ Assert.IsInstanceOfType,Assert.IsNotInstanceOfType
判断指定的对象是否是指定的类型!
⑦ Assert.Fail
迫使断言失败,不管前面的断言是否都成功了,但测试结果是错误的,因为我强制断言失败了!