【发布时间】:2026-02-20 12:45:01
【问题描述】:
我在做 TDD 时经常使用 Assert.Fail。我通常一次只做一个测试,但是当我对以后想要实现的东西有想法时,我会快速编写一个空测试,其中测试方法的名称表明我想要实现的内容作为待办事项列表。为了确保我不会忘记我在正文中放了一个 Assert.Fail()。
在试用 xUnit.Net 时,我发现他们没有实现 Assert.Fail。当然,您始终可以 Assert.IsTrue(false) 但这也不能传达我的意图。我的印象是 Assert.Fail 不是故意实施的。这被认为是不好的做法吗?如果有,为什么?
@Martin Meredith 这不正是我所做的。我确实先编写一个测试,然后实现代码以使其工作。通常我会同时考虑几个测试。或者当我在做其他事情时,我会考虑写一个测试。那时我写了一个空的失败测试来记住。到我开始编写测试时,我会整齐地先测试。
@Jimmeh 这看起来是个好主意。忽略的测试不会失败,但它们仍会显示在单独的列表中。必须尝试一下。
@马特豪威尔斯 好想法。在这种情况下,NotImplementedException 比 assert.Fail() 更能传达意图
@米奇小麦 这就是我一直在寻找的。似乎它被遗漏了以防止它以另一种方式被滥用。
【问题讨论】:
-
关于 Stack Overflow 的第一个 xUnit.net 问题。我想我有点哽咽了。 :)
-
我能说什么.. 我喜欢这个项目。除了缺少 Assert.Fail :-)