Я не думаю, что принудительное выполнение теста без подтверждения действительно полезно. Наличие утверждения в тесте не является самоцелью - цель состоит в том, чтобы написать полезные тесты .
Отсутствующее утверждение является лишь признаком того, что проверка может не быть полезной. Интересный вопрос: Не пройдёт ли тест, если что-то сломается? . Если нет, то, очевидно, бесполезно.
Если все, что вы тестируете, это то, что код не падает, тогда assert_nothing_raised
вокруг него - просто своего рода комментарий. Но проверка на «отсутствие взрывов», вероятно, указывает на слабый тест сам по себе В большинстве случаев он не дает вам никакой полезной информации о вашем коде (потому что «без сбоев! = Правильно»), так почему вы написали тест в первую очередь? Кроме того, я предпочитаю метод, который взрывается правильно, а не метод, который просто возвращает неверный результат.
Я обнаружил, что лучший регрессионный тест пришел из области: взломайте свое приложение (или попросите тестера сделать это), и для каждой обнаруженной проблемы напишите тест, который не удался. Исправьте это, и получите тестовый проход.
В противном случае я бы проверил поведение, а не отсутствие сбоев. В случае, если у меня есть «пустые» тесты (это означает, что я еще не написал тестовый код), я обычно помещаю внутри #flunk, чтобы напомнить мне.