ASP.NET MVC项目About方法VS2019单元测试编写指导
ASP.NET MVC About动作方法单元测试编写指南(适配VS2019)
前置配置
- 右键解决方案选择「添加」→「新建项目」,创建和MVC主项目*.NET Framework版本一致*的单元测试项目(选MSTest单元测试项目模板即可,VS2019原生支持,无需额外配置依赖)。
- 给测试项目添加两类引用:
- 待测试的MVC主项目引用
- 主项目对应版本的
System.Web.Mvc程序集引用(在添加引用的程序集搜索栏直接搜索即可,版本必须和主项目MVC版本完全匹配,否则会出现运行时兼容错误)
测试逻辑设计
你给出的About方法只有两个核心执行逻辑,测试用例只需要覆盖这两点即可,不需要额外加冗余断言:
- 方法执行后是否正确返回视图结果(即返回类型为
ViewResult,而非跳转、报错等其他结果) - 写入
ViewBag.Message的文本是否和预期值完全一致
完整测试代码
注意把代码里的命名空间替换成你自己项目的实际命名空间:
using Microsoft.VisualStudio.TestTools.UnitTesting; using System.Web.Mvc; using 你的MVC项目根命名空间.Controllers; namespace MvcTestProject.Controllers { [TestClass] public class HomeControllerTest { [TestMethod] public void AboutAction_ShouldReturnCorrectViewAndMessage() { // 初始化待测控制器 HomeController controller = new HomeController(); // 执行待测方法 var actionResult = controller.About(); ViewResult result = actionResult as ViewResult; // 断言验证 Assert.IsNotNull(result, "About方法未返回有效的视图结果"); Assert.AreEqual("Your application description page.", result.ViewBag.Message, "ViewBag中存储的Message文本不符合预期"); } } }
在VS2019中运行测试的操作
- 顶部菜单栏选择「测试」→「测试资源管理器」,打开测试管理面板
- 点击面板上的「运行所有测试」按钮,等待执行完成
- 配置无误的情况下,测试用例会显示绿色通过标记,可在TestResult面板查看执行详情
常见问题排查
- 测试抛出空引用异常:优先检查
System.Web.Mvc的引用版本是否和主项目一致,版本不匹配是新手最常遇到的ViewBag读取失败原因;其次检查About方法是否确实返回View(),如果改成返回Redirect等其他类型结果,强转ViewResult会得到null触发空引用。 - 测试资源管理器不显示测试用例:检查测试类是否标记
[TestClass]特性、测试方法是否标记[TestMethod]特性,两个特性缺一不可。 - 提示找不到控制器类型:检查测试项目是否正确添加了主项目引用,以及代码中using的命名空间是否和主项目中HomeController的命名空间完全匹配。
内容的提问来源于stack exchange,提问作者Deven Thakur
相关产品推荐
相关产品推荐

