【发布时间】:2014-05-23 01:48:51
【问题描述】:
所以我正在尝试决定如何为我的 python 项目规划和组织一个测试套件,但是我对单元测试何时不再是单元测试有疑问,我很想从社区获得一些反馈.
如果我理解正确:
- 单元测试测试你的代码的最小部分,如果一个函数/方法只做一个并且只有一个简单的事情,即使它有几个用例.
- 集成测试测试在相同上下文、环境等下执行的两个或多个代码单元(但尝试将其保持在每个集成测试的最小单元)运行良好一起,而不仅仅是他们自己。
我的疑惑是:假设我有一个简单的函数,它执行一个HTTP请求并返回这个请求的内容,不管是HTML,JSON等,没关系,事实是这个函数非常非常简单但从外部来源请求信息,例如:
import requests
def my_function(arg):
# do something very simple with `arg`, like removing spaces or the simplest thing you can imagine
return requests.get('http://www.google.com/' + arg).content
现在这是一个非常愚蠢的例子,但我的疑问是:
鉴于此函数是从外部来源请求信息,当您为它编写测试时,您是否仍可以将此类测试视为单元测试?
更新:my_function() 的测试将排除对外部源的调用,因此它不依赖于 network/db/filesystem/etc,因此它是隔离的。但是,正在测试的函数在运行时依赖于外部资源,例如在生产环境中。
提前致谢!! :)
P.S.:当然,也许我没有理解 100% 的单元和集成测试的目的,所以,如果我弄错了,请指出在哪里,我会很感激的。
【问题讨论】:
标签: python unit-testing testing integration-testing