Я использую Assert.Fail много, когда делаю TDD. Я обычно работаю над одним тестом за раз, но когда я получаю идеи о вещах, которые хочу реализовать позже, я быстро пишу пустой тест, где имя метода тестирования указывает, что я хочу реализовать как вид списка дел. Чтобы убедиться, что я не забываю, я помещаю Assert.Fail() в тело.
При проверке xUnit.Net я обнаружил, что они не реализовали Assert.Fail. Конечно, вы всегда можете Assert.IsTrue(false), но это также не сообщает мое намерение. У меня сложилось впечатление, что Assert.Fail не был реализован специально. Это считается плохой практикой? Если да, то почему?
@Мартин Мередит Это не совсем то, что я делаю. Сначала я пишу тест, а затем реализую код, чтобы он работал. Обычно я думаю о нескольких тестах одновременно. Или я думаю о тестировании, когда я работаю над чем-то другим. Это, когда я пишу пустой тест неудачи, чтобы помнить. К тому моменту, когда я приступаю к написанию теста, я аккуратно работаю над тестированием.
@Jimmeh Это похоже на хорошую идею. Игнорируемые тесты не терпят неудачу, но они все еще отображаются в отдельном списке. Придется попробовать.
@Matt Howells Отличная идея. NotImplementedException связывает намерение лучше, чем assert.Fail() в этом случае
@Митч Пшеница Это то, что я искал. Кажется, что это было запрещено, чтобы не злоупотреблять другим способом, я злоупотребляю им.