[英]How to replace a method with an arbitrary function inside test function (not using patch.object)?
[英]Unable to patch object inside function
我是 Python 新手。 我想為以下函數編寫單元測試:
from common.ds_factory import DSFactory
class MyClass:
def load(self, parsed_file_key):
ds = DSFactory.getDS()
...
現在我無法使用@patch(my_class.DSFactory)
模擬DSFactory
因為我在函數內部使用DSFactory
。
您需要為使用它的模塊修補DSFactory
。 如評論中所述,假設MyClass
在文件my_module.py
定義,您可以使用模塊名稱對其進行修補: @patch("my_module.DSFactory")
。
有一個問題 - 您的模塊必須是可導入的,因此它需要您創建模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.