Python mock func of an obj



你好,我的名字是UserName,我不能mock=(

我有下一个代码:

app/worker/dataObj.py

class DataObj:
def __init__(self, data: dict):
if 'assignee' in data:
self.users = self.get_users()
print(self.users)    
def get_users(self):
users = requests.get(url=URL, headers=HEADERS)
return json.loads(users.text)

app/test/test_dataObj.py

import unittest
from app.worker.dataObj import DataObj
app.test.test_data import test_data
unittest.mock import patch

TestDataObj(unittest.TestCase):
setUp(self):
data = test_data.data_for_dataobj
dataobj = DataObj(self.data)
@patch.object(DataObj, 'get_users')
test_dataobj(self, gu):
gu.return_value = {'user1': 111, 'User2': 222}
print(gu)
self.assertEqual(self.dataobj.tags, ["11", "22", "401", "88888"])

我也尝试这样的路径:

@patch("app.worker.dataObj.requests.get")
@patch("app.worker.dataObj.DataObj.get_users")

但它仍然没有模仿

我在这里读到了不同的相关问题,这似乎是一个路径问题,但无法解决。

好。我不再尝试测试实现,而是开始测试接口。

@patch("app.worker.dataObj.requests.get")
def test_dataobj_assignee(self, mock_req):
mock_req.return_value.text = json.dumps(test_data.get_users_return)
self.dataobj = DataObj(self.test_data.assignee)
self.assertEqual(self.dataobj.assignee, 1130000021382371)

希望它能对某些人有所帮助。

相关内容

最新更新