【发布时间】:2020-11-16 17:57:04
【问题描述】:
XUnit 是一款出色的单元测试工具,我在每个 .NET 项目中都广泛使用它。
但是,我仍然不明白为什么在 Assert.Equal 函数中,“预期”值应该排在第一位。不这样做会在代码中触发警告。
实际上,说起来更自然:我想检查这辆车,它应该是红色,而不是相反的红色应该是那辆车的颜色。
此外,如果您将对象作为第一个参数传递,自动完成功能会为您提供实际参数的逻辑值:在下面的示例中,cache.APIConnectionStatus 是一个枚举,并且自动完成功能会触发一个下拉菜单写下断言时所有潜在的 Enum 值,这大大加快了编写过程。
有什么相反的理由吗?
我知道这是一个细节,有很多方法可以禁用警告/编写覆盖 Equal 方法的扩展,但最后每次我开始一个新项目时它看起来有点混乱和/或耗时。
【问题讨论】:
-
这可能是您应该直接向 XUnit 开发人员而不是 Stack Overflow 提出的问题。虽然我同意你对此事的看法。
-
@CaptainKenpachi 你是对的,但我不想在得到社区反馈之前在 GitHub 上提出问题 :)
-
我正在努力寻找一个不遵循此约定的单元测试框架(如果它使用
Equal样式断言)。除了“让我们遵循常规约定”之外,这可能不是 xUnit 开发人员做出的明确决定 -
@XavierAM:请注意,
Assert.IsTrue像这样意味着如果断言失败,您获得的有用信息就会少得多。
标签: c# unit-testing xunit.net