Python assert: как тестировать программу Python с помощью assert

Операторы assert Python представляют собой логические выражения для проверки того, является ли условие True . Утверждения — это утверждения, которые уверенно констатируют факт в вашей программе. Утверждение — это проверка работоспособности, которую вы можете включить или выключить, когда закончите тестирование программы.

Давайте рассмотрим простой пример написания функции деления; вы уверены, что делитель не должен быть нулем, вы утверждаете, что делитель не равен нулю. Мы увидим этот пример позже в этом посте.

Что такое утверждение

Утверждения — это утверждения, которые уверенно утверждают или излагают случай в вашей программе. Утверждения в Python — это логические выражения, проверяющие, возвращают ли условия истинность или нет. Если это правда, программа ничего не делает и продолжает выполнение следующей строки кода.

Однако, если оно False , программа останавливается и выдает ошибку.

Синтаксис

Следующий синтаксис является базовой структурой операторов assert python.

 assert condition 

Если вы хотите написать сообщение, когда условие ложно, то его синтаксис следующий.

 условие утверждения, сообщение 

Вы также можете отправить информацию в виде сообщения с оператором assert для лучшего понимания ошибки код.

Пример утверждения Python

Если вы хотите смоделировать или отладить свой код, например, что происходит на каком этапе, тогда вы можете использовать в своем коде инструкции python assert.

Это инструмент отладки, поскольку он останавливает программу, как только возникает какая-либо ошибка, и показывает, в какой точке программы возникла эта ошибка. произошло.

Утверждения являются условием on или логические выражения, которые всегда должны быть истинными в коде.

Оператор assert принимает выражение и необязательное сообщение.

Оператор assert используется для проверки типов, значений аргумента и вывода функции.

assert используется в качестве инструмента отладки, поскольку он останавливает программу в точке, где возникает ошибка.

См. следующую программу утверждений в Python.

  # app.pydef avg (ranks): assert len ​​(ranks)! = 0 return round (sum (ranks)/len (ranks), 2) ranks = [62, 65, 75] print ("Среднее значение mark1:",  avg (ranks)) 

В приведенном выше примере мы не хотим передавать пустые ранги, и если они пустые, то выдаст ошибку утверждения. См. Вывод ниже.

В приведенном выше примере мы получит среднее значение, потому что мы передали список элементов.

Теперь давайте передадим пустой список и посмотрим на результат.

 # app. pydef avg (ranks): assert len ​​(ranks)! = 0 return round (sum (rank)/len (ranks), 2) ranks = [] print ("Среднее значение mark1:", avg (ранги)) 

Теперь, в приведенном выше примере, мы не передали элементы ранга. Таким образом, длина будет равна 0, и мы получим ошибку утверждения.

Если утверждение не выполняется, Python использует ArgumentExpression в качестве аргумента для AssertionError.

Исключения AssertionError можно перехватывать и обрабатывать, как любое другое исключение, с помощью оператора try-except, но при неправильной обработке они завершат программу и произведут обратную трассировку.

Но в приведенном выше примере он не выдает ошибку с правильным сообщением. Вы также можете написать собственное сообщение об ошибке. Давайте сделаем это.

 # app.pydef avg (ranks): assert len ​​(ranks)! = 0, 'Список рангов не должен быть пустым' return round (sum (ranks)/len (ranks  ), 2) ranks = [] print ("Среднее количество рангов:", avg (rank)) 

В приведенном выше примере мы передали второй аргумент в assert заявление, которое является сообщением. Таким образом, на выходе мы также увидим сообщение.

Python Assert Keyword с assert с сообщением об ошибке

Давайте посмотрим на другой пример, который делится на 0.

 # app.pydef Divide (x, y): assert y! = 0, 'Divisor cannot be zero' return round (x/y, 2) z = diver (21,3) print (z)  a = div (21,0) print (a) 

В приведенном выше примере, если делитель равен 0, тогда assert выдаст сообщение об ошибке. Посмотрим на результат.

В третьей строке В приведенном выше коде мы можем увидеть оператор assert.

В этой строке проверяется, равно ли значение переменной y 0 или нет.

Если он больше нуля, то есть условие истинно, то проблем не возникает, и мы получим результат соответственно.

Но когда мы вызвали метод Division () со вторым аргументом 0, тогда условие assert ложно.

Вот почему возникает AssertionError , и выдает ошибку с сообщением ‘Divisor cannot be zero’, которое мы написали в части сообщения Python. оператор assert.

Методы утверждения Python

Метод Проверяет, что Новое в
assertEqual (x, y) x == y
assertNotEqual (x, y) x! = y
assertTrue (x) bool (x) имеет значение True
assertFalse (x) bool (x) is False
assertIs (x, y) x isy 3. 1
assertIsNot (x, y) x - это noty 3.1
assertIsNone(x) x is None 3.1
assertIsNotNone (x) x не равно None 3.1
assertIn (x, y) x iny 3.1
assertNotIn (x, y) x не y 3.1
assertIsInstance (x, y) isinstance (x, y) 3.2
assertNotIsInstance (x, y) не isinstance (x, y) 3.2

Как вы проверяете, что функция Python выдает исключение

Мы можем использовать TestCase.assertRaises (или TestCase.failUnlessRaises), например, из модуля модульного тестирования.

 # app.pyimport unittestdef broken_function (): поднять исключение ('Это не работает') class MyTestCase (unittest.TestCase): def test (self): с self.assertRaises (Exception) в качестве контекста: broken_function ()  self.assertTrue ('Это не работает' в str (context.exception)) if __name__ == '__main__': unittest.main () 

См. вывод.

 ➜ pyt python3 app.py .-----------------------------------------  ----------------------------- Выполнить 1 тест за 0,000 секундOK➜ pyt 

Распространенные ошибки при использовании утверждений в Python

Есть два важных предостережения при использовании утверждений в Python, о которых я хотел бы сказать.

  1. Первый связан с внесением в ваши приложения угроз безопасности и ошибок. Не используйте утверждения для проверки данных.
  2. Второй вопрос касается синтаксической особенности, которая упрощает написание бесполезных утверждений. Утверждения, которые никогда не подводят.

Ключевые моменты утверждения в Python

  1. Утверждения — это условие или логическое выражение, которые всегда должны быть истинными в коде.
  2. Оператор assert принимает выражение и необязательное сообщение.
  3. Оператор assert используется для проверки типов, значений аргумента и вывода функции.
  4. assert используется в качестве инструмента отладки, поскольку он останавливает программу в точке, где возникает ошибка.
  5. Правильное использование утверждений — сообщить разработчикам о неисправности ошибки в программе. Они не предназначены для того, чтобы сигнализировать об ожидаемых условиях ошибки, таких как «файл не найден», когда пользователь может предпринять корректирующие действия или просто повторить попытку.
  6. Утверждения — это внутреннее самообслуживание. проверяет вашу программу. Они работают, объявляя некоторые условия невозможными в вашем коде. Если одно из этих условий не выполняется, значит, в вашей программе есть ошибка..

Наконец, пример заявления Python Assert завершен.

Рекомендуемые сообщения

Python Try Except

Python iter ()

Python float ()

Нулевой объект в Python

Python pow ()

Оцените статью
nanomode.ru
Добавить комментарий