如何在一个方法中模拟一个帖子,这样我就可以进行单元测试了?在
def send_report(self, data):
url = settings.WEBHOOK_PO
payload = json.dumps(data)
requests.post(url, data=payload)
url = settings.WEBHOOK_LQA
response = requests.post(url, data=payload)
return response.status_code
有没有一种方法可以覆盖单元测试的这种方法而不实际发布?在
您可以使用
mock
库将requests.post
替换为其他内容:(
mock
是一个third-party package,但在python3.3中作为unittest
包的一部分添加到标准库中。)mock_post
可以配置为在测试期间提供所需的行为;有关详细信息,请参阅mock
文档。在另一个选择是修改方法,将
^{pr2}$post
函数作为参数,而不是对函数进行硬编码(这是一个依赖注入的例子):当您想测试函数时,只需传递一个不同的可调用对象作为可选的第二个参数。在
请注意,您可以为这两种类型的post提供单独的函数,这可能会使测试比mock更容易:
相关问题 更多 >
编程相关推荐