2013-07-16 26 views
1

我想在TestCase.setUpClass()方法中爲修補對象設置一個副作用,以便在整個測試中持續存在副作用,而不必通過setUp()對每個測試進行設置。訪問@classmethod中的修補對象

如何訪問@classmethod中的修補程序?

@patch('my_module.auxiliary_module', autospec=True) 
class TestMyModule(TestCase): 
    @classmethod 
    def setUpClass(cls): 
     # how can I access the patch here to set a side-effect? 

    def test_a(self, mock_auxiliary_module): 
     # here the patch is accessible 

的想我在setUpClass()做一個例子:

mock_auxiliary_module.some_func.side_effect = lambda x: {'a': 2, 'b': 5}[x] 
+0

你想從補丁對象中檢索什麼樣的信息?無論是類數據還是實例數據? –

+0

我也無法訪問'setUp()'中的修補對象!
我想無論如何解決上面的問題也將解決'setUp()'案例 – Jonathan

+0

@ AlexG.P。看到我上面的編輯 - 我想設置一個副作用,而不是從修補的對象中檢索任何東西 – Jonathan

回答

0

使它成爲一個類屬性,這樣就可以在setUpClasscls.my_obj訪問它,或者在其他測試方法self.my_obj

我對修補不太熟悉,所以這可能會有問題。