4
我一直在使用mock
庫來做我的一些測試。到目前爲止,這一切都很棒,但還有一些我還沒有完全理解的東西。蟒蛇 - 訪問對象與修補程序嘲笑
mock
提供使用patch
打補丁的整個方法的一個很好的方式,我可以訪問修補對象的方法,像這樣:
@patch('package.module')
def test_foo(self, patched_obj):
# ... call patched_obj here
self.assertTrue(patched_obj.called)
我的問題是,我該如何訪問一個補丁的對象,如果我在整個課堂上使用patch
修飾器?
例如:
@patch('package.module')
class TestPackage(unittest.TestCase):
def test_foo(self):
# how to access the patched object?
啊,是的,謝謝!我應該先檢查一下。這種情況下的排序是如何確定的?另外,是否可以在第一個打過補丁的模塊上應用另一個補丁(例如,如果''package.module''有幾個具有不同返回值的對象,我想模擬它們)? – bow 2012-03-18 12:14:41
我已經更新了答案。您可以根據需要使用盡可能多的修補程序修飾器。 – bereal 2012-03-18 12:19:49
真棒,謝謝:)! – bow 2012-03-18 12:22:27