說我有:import [email protected]("function_1")@mock.patch("function_2")def my_test(self, f1, f2): f1.return_value="foo" f2.return_value="bar" ...function_1 和 function_2 非常相似,并在多個測試函數中進行了模擬。我很想模塊化這種模式(修補兩個功能)。有沒有這樣的方法?理想的結果如下所示。@grouppatch("function_1_and_2")def my_test(self): ...
1 回答

DIEA
TA貢獻1820條經驗 獲得超3個贊
您可以使用將要修補的目標對象作為參數的函數,并返回一個裝飾器函數,該函數遍歷目標對象以用于mock.patch修補裝飾函數的對象:
def grouppatch(*targets):
def decorator(func):
for target in targets:
func = mock.patch(target)(func)
return func
return decorator
以便:
@grouppatch('builtins.bool', 'builtins.int')
def my_test(mock_bool, mock_int):
mock_bool.return_value = True
mock_int.return_value = 100
print(bool(False), int(10))
my_test()
輸出:
True 100
添加回答
舉報
0/150
提交
取消