我在进行TDD时经常使用Assert.Fail。我通常一次只进行一个测试,但是当我对以后要实现的事情有想法时,我会迅速编写一个空测试,其中测试方法的名称表示要实现的待办事项列表。为了确保我不会忘记,我将Assert.Fail()放在主体中。
尝试xUnit.Net时,我发现他们尚未实现Assert.Fail。当然,您始终可以Assert.IsTrue(false),但这也无法传达我的意图。我给人的印象是Assert.Fail不是故意实现的。这被认为是不良做法吗?如果可以,为什么?
@Martin Meredith这不是我所做的。我确实先编写了一个测试,然后实现代码以使其正常工作。通常我一次想到几个测试。或者,我考虑在做其他事情时要编写的测试。那是我编写一个空的失败测试要记住的时候。等我开始编写测试时,我会先做好测试工作。
@Jimmeh看起来是个好主意。被忽略的测试不会失败,但它们仍会显示在单独的列表中。必须尝试一下。
@Matt Howells好主意。在这种情况下,NotImplementedException传达的意图比assert.Fail()更好。
@米奇小麦这就是我想要的。似乎它被排除在外,以防止以我滥用它的另一种方式被滥用。