【发布时间】:2018-12-12 18:18:11
【问题描述】:
我是 python 代码的模拟和测试新手(无论是什么代码)。
我正在尝试测试我的函数 main.py
def get_channel_list():
sc = SlackClient(get_token())
channels_list_json = sc.api_call("channels.list")
if channels_list_json['ok'] == True:
return channels_list_json
这是我正在尝试测试的功能
我需要模拟补丁 sc.api_call("channels.list") 以返回 JSON 对象
但我找不到任何这样的例子可以帮助我弄清楚如何去做。
我发现的一切都像这个例子Mocking a class method...
我认为应该是这样的:
@patch.object(SlackClient, 'api_call')
def test_get_channel_list():
assert get_channel_list() != ""
我不必测试 lib 我需要在我之前提到的函数中测试我的其余代码。 感谢您的帮助,我对这个测试非常满意。
【问题讨论】:
-
我认为您需要编写一个模拟函数来返回 json 并在
patch装饰器中提及它。如果您添加模拟功能,我们可能无法为您拼凑部分。 -
我没完全明白你的意思
-
你需要一些东西来“返回 json 对象”——你没有包含在问题中。我可以编造一些东西 - 但想知道是否有比你没有提到的更具体的东西。
-
返回什么并不重要,它可能只是 python dict