Утверждения никогда не должны проваливаться ни при каких обстоятельствах. Если они терпят неудачу в ваших тестах, это указывает на логическую ошибку. По сути, если ваша функция выполняет «assert (0)» вместо возврата кода ошибки, то функцию следует переписать. Если прерывание - желаемое поведение, тогда exit () подходит, но не assert ().
Если утверждение когда-либо не выполняется во время ваших тестов, то код содержит ошибку и должен быть изменен. Код «assert (x)» следует интерпретировать как «Логика программы требует, чтобы x было истинным. Ни при каких обстоятельствах оно не может быть ложным». Если у вас есть модульный тест, который приводит к сбою утверждения, то утверждение явно недействительно и должно быть изменено.