如果我理解正确:
- 单元测试测试代码的最小部分,例如只执行一个且仅执行一个简单操作的函数/方法,即使它有多个用例。 - 集成测试测试在相同上下文、环境等下执行两个或多个代码单元(但尽量将单元数量控制在最小范围内)是否良好地协同工作,而不仅仅是单独工作。
我的疑问是:假设我有一个简单的函数,它执行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()的测试将模拟对外部源的调用,以便它不依赖于网络/数据库/文件系统等,因此它是隔离的。但是,在运行时被测试的函数依赖于外部源,例如在生产中。
提前感谢!!:)
附注:当然,也许我没有完全理解单元测试和集成测试的目的,所以,如果我错了,请指出来,我会感激不尽。