使用 Assert 类进行单元测试
使用 Microsoft.VisualStudio.TestTools.UnitTesting 命名空间的 Assert 类来验证特定功能。 单元测试方法执行应用程序代码中的方法代码,但只有包含 Assert 语句时,它才会报告代码行为的正确性。
Assert 的类型
Microsoft.VisualStudio.TestTools.UnitTesting 命名空间提供数种类型的 Assert 类。
在测试方法中,可以调用 Microsoft.VisualStudio.TestTools.UnitTesting.Assert 类的任何方法,如 Assert.AreEqual。 Assert 类有许多方法可供选择,并且其中有很多方法具有若干重载。
比较字符串和集合
使用 CollectionAssert 类比较对象的集合,并验证集合的状态。
使用 StringAssert 类来比较和检查字符串。 此类包含各种有用的方法,如 StringAssert.Contains、StringAssert.Matches 和 StringAssert.StartsWith。
例外
测试失败时,将引发 AssertFailedException 异常。 如果测试超时,引发意外的异常,或者包含生成失败结果的 Assert 语句,则测试将失败。
测试生成无结论的结果时,将引发 AssertInconclusiveException。 通常,将 Assert.Inconclusive 语句添加到仍在处理的测试中,以指示它是否尚未准备好运行。
注意
备用策略使用 IgnoreAttribute 属性标记尚未准备好运行的测试。 但是,这样做的弊端是你无法轻松地对未执行的测试数量生成报表。
如果编写新的 Assert 异常类,让该类从基类 UnitTestAssertException 继承使其可更轻松地将异常识别为断言失败,而不是从测试或生产代码引发的意外异常。
要验证期望由应用程序代码中的方法引发的异常确实已引发,请使用 Assert.ThrowsException 方法。