Метод AssertTrue() в Python: проверка истинности выражения
Рассмотрим, как использовать метод AssertTrue() в Python для проверки того, является ли выражение истинным, и метод AssertFalse() для проверки того, является ли выражение ложным.
Введение в метод AssertTrue() в Python
AssertTrue() — это метод класса TestCase в модуле unittest. Метод AssertTrue() проверяет, является ли выражение истинным:
assertTrue(expr, msg=None)
Если выражение истинно, тест пройден.
msg не является обязательным. Если вы передадите параметр msg, он будет отображаться, если тест не пройден.
Метод AssertTrue() эквивалентен следующему выражению:
bool(expr) is True
И не эквивалентно следующему:
expr is True
На практике вам следует использовать метод AssertTrue() для проверки логического значения переменной. Кроме того, лучше не использовать метод AssertTrue(), если доступны более конкретные методы.
Например, вместо использования метода AssertTrue() в следующем случае:
assertTrue(a == b)
вам следует использовать метод AssertEqual():
assertEqual(a,b)
Потому что метод AssertEqual() обеспечивает более четкое сообщение об ошибке в случае непройденного теста.
Пример метода AssertTrue()
В следующем примере метод AssertTrue() используется для проверки того, все ли символы в строке являются цифрами:
import unittest class TestBool(unittest.TestCase): def test_is_digit(self): str = '123' self.assertTrue(str.isdigit())
Запустите тест:
python -m unittest -v
Выход:
test_is_digit(test_bool.TestBool) ... ok ---------------------------------------------------------------------- Ran 1 test in 0.000s OK
Метод AssertFalse() в Python
Метод AssertFalse() проверяет, является ли выражение ложным. Например:
import unittest class TestBool(unittest.TestCase): def test_empty_string_is_digit(self): str = '' self.assertFalse(str.isdigit()) def test_alpha_is_digit(self): str = 'a00' self.assertFalse(str.isdigit())
Запустите тест:
python -m unittest -v
Выход:
test_alpha_is_digit(test_bool.TestBool) ... ok test_empty_string_is_digit(test_bool.TestBool) ... ok test_is_digit(test_bool.TestBool) ... ok ---------------------------------------------------------------------- Ran 3 tests in 0.001s OK