1
我是嘲笑新手。我查看了mock模塊,並瞭解如何使用修補程序修飾器來模擬特定的方法或模塊。如何模擬一個模塊,但不是其中的所有方法?
爲了嘲笑一個模塊在一個單一的方法,一種方法做的是:
@mock.patch('module1.method1')
def test_val(self, mock_method1):
mock_method1.return_value = "whatever_i_want"
爲了嘲笑在同一模塊中的多個方法,我可以這樣做:
@mock.patch('module1.method2')
@mock.patch('module1.method1')
def test_val(self, mock_method1, mock_method2):
mock_method1.return_value = "whatever_i_want"
mock_method1.return_value = "whatever"
我想要的是嘲笑模塊中的一些方法,並保持其他模式。如果我嘲笑整個模塊,那麼模塊中的每個方法或屬性都會被模擬。因此,我可以用任何方法模擬整個模塊(只保留特定的方法),而不是像上面所示的那樣分別模擬多個方法。
請問您可以發佈您正在測試的代碼嗎?您可以對其進行重構,以便測試可以直接使用測試配置的對象調用它,從而允許您覆蓋單個方法或w/e。你在尋找一個黑名單方法來嘲笑一個對象嗎? – dm03514
@ dm03514對不起,我無法發佈我的代碼。不,我正在尋找一個白名單方法(模擬模塊中的所有方法,除了幾個所需的方法) –