在软件开发中,C#单元测试是确保代码质量的重要手段。而代码覆盖率分析则帮助我们了解测试是否覆盖了足够的业务逻辑。本教程将手把手教你如何在Visual Studio中编写单元测试,并使用内置工具进行代码覆盖率分析,即使你是编程新手也能轻松上手!
单元测试是一种对程序最小可测试单元(通常是方法或函数)进行验证的测试方式。通过单元测试,我们可以快速发现代码中的错误。
代码覆盖率是指你的测试用例执行时,实际运行了多少比例的源代码。例如,如果你的项目有100行可执行代码,而测试只运行了70行,那么覆盖率就是70%。高覆盖率通常意味着更可靠的测试。
你需要以下环境:
首先,创建一个名为 CalculatorApp 的控制台项目:
// Calculator.csnamespace CalculatorApp{ public class Calculator { public int Add(int a, int b) { return a + b; } public int Subtract(int a, int b) { return a - b; } public double Divide(int a, int b) { if (b == 0) throw new DivideByZeroException("除数不能为零"); return (double)a / b; } }} 在 Visual Studio 中,右键解决方案 → 添加 → 新建项目 → 选择“xUnit 测试项目”(你也可以选择 MSTest 或 NUnit,这里以 xUnit 为例),命名为 CalculatorApp.Tests。
然后添加对主项目的引用:右键测试项目 → 添加 → 项目引用 → 勾选 CalculatorApp。
在测试项目中,修改 UnitTest1.cs 文件如下:
using Xunit;using CalculatorApp;namespace CalculatorApp.Tests{ public class CalculatorTests { private readonly Calculator _calculator = new Calculator(); [Fact] public void Add_TwoNumbers_ReturnsCorrectSum() { // Arrange int a = 5, b = 3; int expected = 8; // Act int result = _calculator.Add(a, b); // Assert Assert.Equal(expected, result); } [Fact] public void Subtract_TwoNumbers_ReturnsCorrectDifference() { var result = _calculator.Subtract(10, 4); Assert.Equal(6, result); } [Fact] public void Divide_ByZero_ThrowsDivideByZeroException() { Assert.Throws<DivideByZeroException>(() => _calculator.Divide(10, 0)); } [Fact] public void Divide_ValidNumbers_ReturnsCorrectResult() { var result = _calculator.Divide(10, 2); Assert.Equal(5.0, result); } }} 1. 在菜单栏点击 测试 → 测试资源管理器,打开测试窗口。
2. 点击“全部运行”,确认所有测试通过。
3. 要分析代码覆盖率,点击菜单栏:测试 → 分析代码覆盖率 → 所有测试。
稍等片刻,Visual Studio 会生成覆盖率报告,显示哪些代码行被测试覆盖,哪些没有。你可以在“代码覆盖率结果”窗口中查看详情。
[Theory] 和 [InlineData] 测试多组输入通过本教程,你已经掌握了如何在 C# 项目中使用 Visual Studio测试工具 编写单元测试并分析代码覆盖率。坚持编写高质量的测试,不仅能提升代码健壮性,还能让你在团队协作中更具专业性。
记住,小白入门教程只是起点,持续实践才是成为高手的关键!
本文由主机测评网于2025-12-22发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20251211474.html