【发布时间】:2020-02-25 14:03:58
【问题描述】:
你好,我的名字是用户名,我不能模拟 =(
我有下一个代码:
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")
但它仍然没有模拟
我在这里阅读了不同的相关问题,这似乎是一个路径问题,但无法弄清楚。
【问题讨论】:
标签: python mocking python-unittest