Как использовать unittest, чтобы утверждать утверждение? - PullRequest
0 голосов
/ 08 апреля 2019

Допустим, у меня есть эта функция:

def to_upper(var):
    assert type(var) is str, 'The input for to_upper should be a string'
    return var.upper()

И файл для модульного тестирования с использованием unittest:

class Test(unittest.TestCase):

    def test_1(self):
        -- Code here --


if __name__ == '__main__':
    unittest.main()

Как мне проверить, что если я позвоню to_upper(9), это выдаст ошибку подтверждения?

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Утверждения для отладки.Если есть какое-то предварительное условие, которое достаточно важно для проверки с помощью модульного теста, проверьте его явно и в случае необходимости увеличьте ValueError или TypeError.

В этом случае вам не нужнона самом деле все равно, var это str, хотя;вам просто нужен метод upper.

def to_upper(var):
    try:
        return var.upper()
    except AttributeError:
        raise TypeError("Argument has no method 'upper'")
0 голосов
/ 08 апреля 2019

Вы можете подтвердить утверждение с помощью assertRaises(AssertionError):

def test_1(self):
    with self.assertRaises(AssertionError):
        to_upper(9)
...