gpt4 book ai didi

Python/Django unittest,如何处理外部调用?

转载 作者:行者123 更新时间:2023-11-28 20:22:37 25 4
gpt4 key购买 nike

我多次读到应该使用 mock 来模拟外部调用,并且不应调用任何外部服务,因为无论外部服务如何,您的测试都需要运行。

这完全有道理......但是

外部服务有什么变化?测试有什么用,测试我的代码是否像它应该的那样工作,如果我永远不知道它何时因为外部服务被修改/更新/删除/弃用/等等而中断......

我该如何调和呢?伪代码如下

function post_tweet:
data = {"tweet":"tweetcontent"}
send request to twitter
receive response
return response

如果我 mock 它,我将无法收到 Twitter 更改其 API 的通知,现在我必须更新我的测试...

最佳答案

有不同级别的测试。

单元测试 正在测试,正如您可能从名称中猜到的那样,是一个单元。例如,这是一个函数或方法,也许是一个类。如果您对其进行更广泛的解释,它可能包含一个要使用 Djangos 测试客户端进行测试的 View 。单元测试从不测试外部的东西,比如库、依赖项或与其他系统的接口(interface)。这些东西会被 mock 。

集成测试 正在测试您的接口(interface)以及外部库、系统和 API 的使用是否正确实现。如果依赖关系发生变化,您会注意到必须更改您的代码和单元测试。

还有其他级别的测试,例如行为测试、UI 测试、可用性测试。您应该确保在您的项目中分离这些测试类。

关于Python/Django unittest,如何处理外部调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39386340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com