Метод класса в примере модульного тестирования PythonPython

Программы на Python
Anonymous
Метод класса в примере модульного тестирования Python

Сообщение Anonymous »

Я пытаюсь смоделировать функцию в методе setUpClass(), а затем восстановить функцию в методеearDownClass().

Код: Выделить всё

class MyClass(unittest.TestCase):

@classmethod
def setUpClass(cls):

cls.save_func = module.func
module.func = lambda: True

@classmethod
def tearDownClass(cls):

module.func = cls.save_func
После методаearDownClass() я ожидал, что вызов модуля.func() вызовет фактическую функцию. Но это не так.

Я провел некоторую отладку, распечатав функции. Я получил приведенные ниже результаты с помощью методаearDownClass().

Код: Выделить всё

cls.save_func: 
module.func:  
Я пробовал разные вещи и изменил методы с методов класса на методы настройки:

Код: Выделить всё

     def setUp(cls):

cls.save_func = module.func
module.func = lambda: True

def tearDown(cls):

module.func = cls.save_func
К моему удивлению, похоже, все работает. Module.func восстанавливается обратно, и когда я его печатаю, он дает мне адрес функции.

Код: Выделить всё

module.func 
Можете ли вы объяснить поведение?

Подробнее здесь: https://stackoverflow.com/questions/160 ... -test-case

Вернуться в «Python»