这是一个非常简单的问题。如果我在方法中有导入,如何模拟该特定导入?例如:
def myFunction(self):
auth_token_path = self.authTokenPath()
import json
if os.path.exists(auth_token_path):
auth_token = json.load(open(auth_token_path, 'r'))
return auth_token
如何嘲笑此“导入json”?有什么办法可以解决这个问题?我尝试将其导入测试函数中,但我认为这不是正确的方法(并且也无法正常工作)。
答案 0 :(得分:0)
模拟此功能
def myFunction(self):
auth_token_path = self.authTokenPath()
import json
if os.path.exists(auth_token_path):
auth_token = json.load(open(auth_token_path, 'r'))
return auth_token
我们需要做的就是添加与需要模拟的导入功能相关的装饰器PATCH():
@patch('json.load')
def myFunction(self,json):
auth_token_path = self.authTokenPath()
import json
if os.path.exists(auth_token_path):
auth_token = json.load(open(auth_token_path, 'r'))
return auth_token