单元测试实战(二)

说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!

接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/100097477

目录

二、UT开展

4.UT执行


二、UT开展

4.UT执行

1.回顾

2.借助于单元测试框架:unittest

  • 在执行单元测试之前,需要创建一个被测对象(函数),那么在IDE中创建一个计算器的测试函数

  • 在新创建一个名为unittest_case_cdtaogang的python包,在包下创建模块,在模块中导入以上定义的被测对象,通过unittest模块实现单元测试

  • 执行测试,测试被测对象中的jia方法,实现与预期结果比较

  • 同样的再编写一个测试用例完成jian函数的测试

  • 将上一篇博客中所编写过的三角形代码拷贝到unittest_demo_cdtaogang包下,封装到类中进行如下修改

  • 在unittest_case_cdtaogang模块下创建另一个测试模块,并编写如下代码完成三角形的单元测试

  • 执行单元测试,测试结果如下

3.读取数据的方式

1.使用xml文件的方式读取

  • 当测试数据比较多时,为了让代码看着更简洁,以及数据的安全性,需要将测试数据存放到一个目录下的文件中,保证代码和数据是分开的,这里使用的是将测试数据写入到xml文件中,如下所示

  • 测试数据有了,则需要创建一个目录存放读取xml文件的代码,实现读取xml文件中jia节点下的数据

  • 修改代码,使用传递参数来完成xml文件数据的读取

  • 在unittest框架中读取xml文件,首先需要在xml文件中添加预期结果值,这样才能保证测试代码中不出现数据,然后在read_data方法中需要获取到预期结果值,并将数据进行返回

  • 最后在测试文件中,调用read_data方法并传递相应的参数,实现在unittest框架中读取xml文件中的数据

  • 运行代码,测试结果与预期结果一致

  • 同样的对于三角形单元测试也是如此,首先需要创建xml格式的测试数据文件

  • 然后在ReadXml中定义读取三角形测试数据的方法

  • 最后在测试文件中,调用read_data_2方法并传递相应的参数,实现在unittest框架中读取xml文件中的数据

  • 运行代码,测试结果与预期结果一致

2.使用csv文件进行读取

  • 首先定义一个计算机的加法函数代码

  • 然后定义以上功能单元测试类

  • 创建一个csv格式的文件,用于存储测试数据,需要注意的是,先创建一个txt的文本,填写完内容后,再重命名修改为.csv后缀即可

  • 重命名后变成csv文件,打开此文件后内容如下

  • 将该csv文件拷贝到项目unittest_xmldata_cdtaogang目录下

  • 紧接着则需要获取csv文件中的内容,即在unittest_commonlib_cdtaogang目录下编写代码用于读取csv文件中的数据

  • 将获取到的列表数据,添加到自定义列表中并进行返回

  • 然后在单元测试模块中,导入读取csv文件的类,并调用其read_data方法,遍历返回值,通过列表索引来循环测试csv文件中的数据

  • 运行代码后,测试结果与测试数据一致

  • 创建三角形测试数据的csv文件,预期结果涉及到中文,所以在创建txt文件的时候需要另存为utf-8编码的文件

  • 重命名为.csv文件,打开此文件,内容如下

  • 将sanJX.csv文件拷贝到unittest_xmldata_cdtaogang目录下,内容中的数据正常显示没有编码错误

  • 在readCsv模块中编写读取sanJX.csv文件的方法,因为在这个文件中的每一列的标题是不需要获取的,所以返回的列表数据需要进行切片处理,去除第一行数据

  • 紧接在unittest_case_cdtaogang目录创建单元测试模块testDemo_04,用于测试sanJX.csv文件中的测试数据,完成三角形功能的单元测试

  • 运行代码后,测试结果与测试数据一致

  • 将三角形测试结果生成html格式的测试报告

  • 运行测试,成功在report目录下生成html_report.html测试报告文件

  • 打开html_report.html文件,查看测试报告结果为通过

4.单元测试总结

UT计划
                1.确定测试范围--->从4个方面考虑(频率、复用性、开发背景、复杂度)---->确定20%或者测试的优先级
                2.评估标准
                    黑盒测试:需求覆盖率100%
                    灰盒测试:接口覆盖率
                    白盒测试:逻辑覆盖率:语句、分支、条件、路径、分支-条件
                
UT设计
                1.测试策略:自顶向下、自底向上、孤立策略
                    注意:如果测试函数时,涉及调用其他函数,需要进行打桩(模拟函数中调用的函数)
                    驱动:1.调用函数、2、传递数据3、接收结果4、进行比对
UT实现
                设计测试用例:
                    1.将代码转换为流程图
                    2.将流程图转换为流图--->圈(条件、语句或者多个语句),线:带有箭头的线
                    3.确定路径--->确定了代码的复杂度(圈复杂度)--->确定了测试用例
                    4.编写测试用例
UT执行
                1.模拟测试函数
                2.使用unittest单元测试框架执行测试用例
                3.数据和代码分类思想:
                    1.通过读取xml文件---->将测试数据写入xml文件中,xml是用来存储和传输数据(导包:from xml.dom import minidom)
                    2.通过读取csv文件--->导包:import csv
                单元测试对象:函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cdtaogang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值