我在做 TDD 时经常使用 Assert.Fail。我通常一次只做一个测试,但是当我对以后想要实现的东西有想法时,我会快速编写一个空测试,其中测试方法的名称表明我想要作为待办事项列表来实现的内容。为了确保我不会忘记我在正文中放了一个 Assert.Fail() 。
在尝试 xUnit.Net 时,我发现他们没有实现 Assert.Fail。当然,您始终可以 Assert.IsTrue(false) 但这也不能传达我的意图。我的印象是 Assert.Fail 不是故意实施的。这被认为是不好的做法吗?如果是,为什么?
@Martin Meredith 这不正是我所做的。我确实先编写一个测试,然后实现代码以使其工作。通常我会同时考虑几个测试。或者当我在做其他事情时,我会考虑写一个测试。那时我写了一个空的失败测试来记住。到我开始编写测试时,我整齐地先测试。
@Jimmeh 这看起来是个好主意。忽略的测试不会失败,但它们仍会显示在单独的列表中。必须尝试一下。
@Matt Howells 好主意。在这种情况下,NotImplementedException 比 assert.Fail() 更好地传达意图
@Mitch Wheat 这就是我想要的。似乎它被遗漏了以防止它以另一种方式被滥用,我滥用它。