c# - 单元测试中的多个断言是否不好?即使连环?

标签 c# unit-testing asp.net-mvc-2 mstest

这个单元测试检查这么多东西有什么问题吗?:

ActualModel = ActualResult.AssertViewRendered()        // check 1
                          .ForView("Index")            // check 2
                          .WithViewData<List<Page>>(); // check 3

CollectionAssert.AreEqual(Expected, ActualModel);      // check 4

此测试的主要目标是验证返回了正确的 View (检查 2)并且它包含正确的数据(检查 4)。

如果将其拆分为多个测试,我会得到什么吗?我只想把事情做对,但如果它没有实际值(value),我不会拆分。

我是单元测试的新手,所以要温和。

最佳答案

正如其他人指出的那样,最好在每个测试中坚持一个断言以避免丢失信息——如果第一个断言失败,您不知道后面的断言是否也会失败。您必须使用更少的信息来解决问题 - 这可能(可能)会更难。

一个很好的引用是 Roy Osherove 的 Art of Unit Testing - 如果您想正确开始单元测试,您可能会比从这里开始做得更糟。

关于c# - 单元测试中的多个断言是否不好?即使连环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2430429/

相关文章:

c# - FakeItEasy 是否支持部分模拟的想法?

c# - 如何强制类为每个公共(public)方法获取单元测试?

asp.net-mvc - T4MVC 和不同区域的重复 Controller 名称

c# - 将空字符串绑定(bind)到 Guid.Empty 或避免模型状态错误

c# - 部署后无法连接到 Azure SignalR 服务

c# - 最小化响应/请求数据包

c# - Linq to Sql 联合语句

java - 什么是Java JDKV2

c# - 使用 .runsettings 文件时,代码覆盖率中不包含异步方法

c# - 如果参数为 null,则阻止 MVC Action 方法执行