徒手搭建Python单元测试框架

徒手搭建Python单元测试框架,第1张

稍微具有一定规模的企业对于软件开发一般都会要求写单元测试,虽然各自标准不同,有的可能要求覆盖率达到50即可,而像我司这种竟然要求行覆盖率和分支覆盖率都要到95%以上。本文会手把手教你如何在项目初期搭建单元测试框架,以便能够指导后续开发进行单元测试编写和测试报告生成。本文适合python项目的架构师或者核心发起者。如果是小白也可以了解下单元测试是怎么搭建的以及一些单元测试的原则。

一般项目如果是web项目都会有配置文件,那么启动单元测试的应用上下文也需要测试用的配置文件。下面是一个基于flask开发的web项目的单元测试配置文件。大家可以参考下。如果项目不是web项目而是脚本仓库也可以不需要这块。

基础测试类会初始化测试应用上下文以及内存数据库初始化,以及测试完成后的数据清理

测试聚合类是用来扫描所有测试模块并运行测试用例的

python的Coverage库是用来生成测试报的,可以通过.coverage文件配置测试报告的内存,包括忽略项,是否包含分支覆盖率,测试报告生成位置和形式(xml或者html)等

通过运行以下coverage 模块生成测试报告

读者最好对Spring框架及Spring框架提供的单元测试支持有所了解,因为本文案例基于Spring技术编写。但对Spring不了解并不影响本文所讲述的单元测试用例编写及回调模式、模板方法的应用。 单元测试是编写高质量代码的前提,通过编写有效的单元测试即可以保证代码的质量又可以提高开发速度,因为大多数问题都可以通过单元测试发现并解决而不需要部署到应用服务器。纵览网上流行的优秀开源框架,无一不提供完整的单元测试用例。Spring框架便是其中的代表和佼佼者,因为Spring所遵循的控制反转(IoC)和依赖注入(DI)原则使编写有效、干净的单元测试用例变得更加方便、快捷。 编写单元测试用例 本文所采用的案例非常简单,就是对数据库表的增、删、改、查 *** 作进行测试。假设我们有这样一个表url(MySql数据库): 正如你所见,该表只有几个字段,但对于我们的案例来说完全够用。 看到此处,你应该清楚我们是要对数据库 *** 作进行单元测试。如果你是一位经验丰富的开发人员,此时已经会有许多疑问,甚至已经失去继续阅读本文的兴趣: �0�5 单元测试不应该直接 *** 作数据库? �0�5 对数据库 *** 作的单元测试可以采用DAO模式,Mock一个实现类? �0�5 使用内存数据库? �0�5其他? 数据库表有了,我们接下来编写DAO及其实现类: DAO接口:/*** @author tao.youzt*/public interface BizUrlDAO {public Object insert(BizUrlDO bizUrlDO)public int delete(String url)public BizUrlDO getByUrl(String url)}DAO实现类,该类继承一个支持类,封装了对数据库的 *** 作。/**


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6915334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存