1
setUpClass()
메소드의 함수를 실습하고 tearDownClass()
메소드의 함수를 복원하려고합니다.파이썬 단위 테스트 케이스의 클래스 메소드
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
는 tearDownClass()
방법 후, 나는 실제 함수를 호출 할 module.func()
에 대한 호출을 기대했다. 그러나 그렇지 않습니다.
기능을 인쇄하여 일부 디버깅을했습니다. 나는 아래의 출력을 tearDownClass()
메쏘드에서 얻었습니다.
cls.save_func: <unbound method MyClass.save_func>
module.func: <unbound method MyClass.save_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 <function func at 0x89f9a74>
문제를 설명해 주시겠습니까?
웨슬리, 이것을 자세히 설명해 주실 수 있습니까? –
참조 http://stackoverflow.com/questions/1682504/how-to-write-a-stub-for-a-classmethod-in-python –