Подтвердить что ты не робот

Есть ли способ использовать утверждения Python unit test вне TestCase?

Мне нужно создать поддельный вспомогательный класс, который будет использоваться в модульных тестах (вводится в тестируемые классы). Есть ли способ использовать утверждения TestCase в таком классе?

Я хотел бы использовать утверждения для некоторых общих проверок, выполняемых классом Fake. Что-то вроде:

class FakeFoo(object):

  def do_foo(self, a, b):
    assertNotNull(a)
    ...
4b9b3361

Ответ 1

Вы можете создать экземпляр unittest.TestCase() и вызвать методы, если вы передадите имя существующего метода в классе. __init__ будет делать в этом случае:

tc = unittest.TestCase('__init__')
tc.assertIsNotNone(a)

Однако, вероятно, вы, скорее всего, ищете хорошую Mock library. mock будет хорошим выбором.

Ответ 2

Вы можете использовать Pytest или Nosetest. Хотя я бы не знал, есть ли у них функция "assertNotNull". Я знаю, что они могут использовать "утверждать" просто для утверждения. Или вы можете использовать что-то вроде assertpy или ptest, если хотите, вы можете искать их на github.