Я ищу метод (если доступен), который может сравнивать два значения и выдавать ошибку подтверждения со значимым сообщением при сбое сравнения.
Если я использую assert
, сообщение об ошибке несодержать, какие значения сравнивались при неудачном утверждении.
>>> a = 3
>>> b = 4
>>> assert a == b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError
>>>
Если я использую метод assertEqual()
из пакета unittest.TestCase
, сообщение подтверждения содержит сравниваемые значения.
a = 3
b = 4
> self.assertEqual(a, b)
E AssertionError: 3 != 4
Обратите внимание, что здесь сообщение об ошибке подтверждения содержит сравниваемые значения.Это очень полезно в реальных сценариях и, следовательно, необходимо для меня.Простой assert
(см. Выше) этого не делает.
Однако до сих пор я мог использовать assertEqual()
только в классе, который наследуется от unittest.TestCase
и предоставляет несколько других необходимых методов, таких как runTest()
.Я хочу использовать assertEqual()
где угодно, а не только в унаследованных классах.Это возможно?
Я попробовал следующее, но они не работали.
>>> import unittest
>>> unittest.TestCase.assertEqual(a, b)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unbound method failUnlessEqual() must be called with TestCase instance as first argument (got int instance instead)
>>>
>>>
>>> tc = unittest.TestCase()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.6/unittest.py", line 215, in __init__
(self.__class__, methodName)
ValueError: no such test method in <class 'unittest.TestCase'>: runTest
>>>
Есть ли какой-либо другой пакет или библиотека, которая предлагает подобные методы, такие как assertEqual()
, которые можно легко использовать без дополнительных ограничений?