基于MSTest框架创建一个简单的C#单元测试(Visual Studio 2019版)
1、环境准备
环境:
IDE:Visual Studio 2019
单元测试框架:MSTest
.NET版本:.NET Core 3.1
Test.Sdk版本:Microsoft.NET.Test.Sdk 16.9.4
目的:
编写单元测试方法以验证 BankAccount 类的 Debit 方法,至少需要检查三种行为:
(1)如果借方金额有效(借方金额小于余额且大于零),会从帐户余额中减去借方金额。
(2)如果借方金额小于零,该方法会引发 ArgumentOutOfRangeException。
(3)如果借方金额大于余额,该方法将引发 ArgumentOutOfRangeException 。
完整代码下载:GitHub - weibo01/MSTest: 基于MSTest框架创建C#单元测试
2、创建一个被测试项目
(1)打开 Visual Studio,选择“创建新项目”
(2)选择 C#“控制台”项目模板
(3)项目命名为“Bank”
(4)选择目标框架,然后选择“创建”
(5)添加业务代码
将Program.cs 文件重命名为 BankAccount.cs,具体代码见附件。
3、创建单元测试项目
(1)新建项目
在“文件” 菜单上,选择“添加” > “新建项目” ,在 "搜索" 框中键入 test ,选择 c # 作为语言,然后选择 "c # MSTest 测试项目"模板,然后单击"下一步"。
(2)添加项目引用
将单元测试项目命名为“BankTests”,然后单击“下一步” ,选择目标框架然后选择“创建”。
在“BankTests” 项目中,添加对“Bank” 项目的引用。(选择 " banktests" "项目,右键选择“添加”->“项目引用”,在“引用管理器”对话框中,展开“项目”,选择“解决方案”,然后选中“Bank”项。)
(3)添加单测代码
从 BankTests 项目中选择 UnitTest1.cs 文件,添加相应测试代码(见附件),并将UnitTest1.cs 文件重命名为BankAccountTests.cs
向测试类中添加 using 语句,供测试项目调用,而无需使用完全限定名。 在类文件顶部添加:using BankAccountNS;
到此,被测项目和测试项目代码已编写完成,整体代码结构如下图:
4、执行测试
运行测试:测试-》运行所有测试
单元测试已发现一个 bug:取款金额本应从帐户余额中减去,结果却添加到帐户余额中。
修改Bug后再次执行测试:
5、说明
(1)测试方法[TestMethod]
测试方法[TestMethod]必须满足以下要求:
(1)使用 [TestMethod] 特性进行修饰
(2)它将返回 void
(3)它不能含有参数
(2)测试类[TestClass]
测试类[TestClass] 最低要求:
(1)任何包含要在“测试资源管理器”中运行的单元测试方法的类都需要有 [TestClass] 特性。
(2)“测试资源管理器”识别的每个测试方法都必须具有 [TestMethod] 属性。
(3)单元测试项目中可以具有不含 [TestClass] 特性的其他类,测试类中可以具有不含 [TestMethod] 特性的其他方法。
版权归原作者 魏波. 所有, 如有侵权,请联系我们删除。