前言:
大三期间的第一次软工编程作业,让我第一次接触到单元测试这个词,也就是写下这篇文章的时候,百度什么是单元测试的结果是
当时任务要求感觉还挺多的,而这个单元测试陌生的完全看不懂什么意思,只是大概知道好像是测试程序正确性的一个emmm测试吧。几天的时间里零零散散的了解了一些,基本锁定使用工具vscode,但是用vscode就发生了这样的问题:见下图,所以就也没管,直到昨天凌晨肝了三个小时,算是对单元测试有了一些简单的了解,特此记录。
什么是单元测试?
所谓单元测试,就是你要自己写一段代码用来测试你的源代码,所以最少要有两个代码,一个要被测试的代码,另一个就是你用来测试的代码。
vscode单元测试功能使用:
首先创建一个文件夹命名没有要求,例如我创建一个文件夹test,接着vscode打开该文件夹,里面创建.py文件,命名也没有要求,例如创建一个want_totest.py的文件来存放要被测试的代码:
def test1(x): #待测试函数1,功能是返回传入值加一
return x+1
def test2(x): #待测试函数2,功能是返回传入值减一
return x-1
当然上面写的只是举例实际应用中要放入你的源代码。
接下来写测试函数,写之前要明白pytest只识别test_开头或者_test结尾的py文件,对于样例want_totest.py的测试代码样例:先创建一个test_pytest.py文件,内容如下:
import want_totest #导入源代码
def test_test1():
assert want_totest.test1(3) == 4 #测试test1函数传入3是否返回期待值4
def test_test2():
assert want_totest.test2(3) == 4 #测试test2函数传入3是否返回期待值4
记得写完代码要编译运行下。
接着我们创建一个文件夹,命名没有要求,例如创建一个“测试”文件夹,把刚刚写的want_totest.py(源代码)和test_pytest.py(测试代码)一起放进去,然后如下图所示
先点击烧杯,然后安装工具,选择pytest,选择刚刚新建的文件夹“测试”,便能看到下图所示
可以看到test1通过了而test2并没有通过,点开之后可以看到
test2没有通过的原因是输入3之后得到的返回值是2,而2不等于4,所以测试不通过,这正好符合我们定义的函数test2:return x-1 ,同样的也可以传入更多的参数了来对样例进行测试,这样我们就利用vscode完成了对样例代码的单元测试。