Есть ли метод pytest, аналогичный в assertIsNone (x) unittest - PullRequest
0 голосов
/ 21 мая 2019

Я хочу проверить значение None в коде pytest. Есть ли аналогичный метод assertIsNone (x)? Я пробовал следующее, но искал лучший способ.

assert x == None, "Sucess"
assert x != None, " Failure"

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Вы можете использовать следующее - если вы хотите проверить, что объект на самом деле None тип:

assert x is None, "asserion failure message here"
assert x is not None, "assertion failure message here"

На другой ноте;чтобы вы в полной мере поняли разницу между is и equal to - ==;Вот небольшой пример:

0 == False
# True - Equality since 0 is considered a false value.
0 is False
# False - Since they don't share the same identity.

Простой обзор:

Оператор == сравнивает, проверяя равенство.

Однако оператор is, сравнивает тождества.

0 голосов
/ 22 мая 2019

Вы должны использовать is здесь, потому что он проверяет, совпадает ли идентичность значения с None ( 1 ) (value is None эквивалентно id(value) == id(None)):

assert x is None     #id(x) == id(None)
assert x is not None #id(x) != id(None)
assert x == None     #This compare if the value are equivalent and should not be used

А ( 4 ):

PEP 8: сравнение с None должно быть «если cond равно None:»

Источники:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...