Есть ли способ использовать утверждения Python unit test вне TestCase?
Мне нужно создать поддельный вспомогательный класс, который будет использоваться в модульных тестах (вводится в тестируемые классы). Есть ли способ использовать утверждения TestCase в таком классе?
Я хотел бы использовать утверждения для некоторых общих проверок, выполняемых классом Fake. Что-то вроде:
class FakeFoo(object):
def do_foo(self, a, b):
assertNotNull(a)
...
Ответы
Ответ 1
Вы можете создать экземпляр unittest.TestCase()
и вызвать методы, если вы передадите имя существующего метода в классе. __init__
будет делать в этом случае:
tc = unittest.TestCase('__init__')
tc.assertIsNotNone(a)
Однако, вероятно, вы, скорее всего, ищете хорошую Mock library. mock
будет хорошим выбором.
Ответ 2
Вы можете использовать Pytest или Nosetest. Хотя я бы не знал, есть ли у них функция "assertNotNull". Я знаю, что они могут использовать "утверждать" просто для утверждения. Или вы можете использовать что-то вроде assertpy или ptest, если хотите, вы можете искать их на github.