使用 Assert 类进行单元测试

使用 Microsoft.VisualStudio.TestTools.UnitTesting 命名空间的 Assert 类来验证特定功能。 单元测试方法执行应用程序代码中的方法代码,但只有包含 Assert 语句时,它才会报告代码行为的正确性。

Assert 的类型

Microsoft.VisualStudio.TestTools.UnitTesting 命名空间提供数种类型的 Assert 类。

在测试方法中,可以调用 Microsoft.VisualStudio.TestTools.UnitTesting.Assert 类的任何方法,如 Assert.AreEqualAssert 类有许多方法可供选择,并且其中有很多方法具有若干重载。

比较字符串和集合

使用 CollectionAssert 类比较对象的集合,并验证集合的状态。

使用 StringAssert 类来比较和检查字符串。 此类包含各种有用的方法,如 StringAssert.ContainsStringAssert.MatchesStringAssert.StartsWith

例外

测试失败时,将引发 AssertFailedException 异常。 如果测试超时,引发意外的异常,或者包含生成失败结果的 Assert 语句,则测试将失败。

测试生成无结论的结果时,将引发 AssertInconclusiveException。 通常,将 Assert.Inconclusive 语句添加到仍在处理的测试中,以指示它是否尚未准备好运行。

注意

备用策略使用 IgnoreAttribute 属性标记尚未准备好运行的测试。 但是,这样做的弊端是你无法轻松地对未执行的测试数量生成报表。

如果编写新的 Assert 异常类,让该类从基类 UnitTestAssertException 继承使其可更轻松地将异常识别为断言失败,而不是从测试或生产代码引发的意外异常。

要验证期望由应用程序代码中的方法引发的异常确实已引发,请使用 Assert.ThrowsException 方法。

请参阅