加入收藏 | 设为首页 | 会员中心 | 我要投稿 烟台站长网 (https://www.0535zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

三大神器之 Python 装饰器

发布时间:2021-02-11 14:12:56 所属栏目:评论 来源:互联网
导读:五 如何写好单测? 1 工具 工欲善其事必先利其器,抗拒写单测的其中最主要的一个原因就是没有神器在手! Fast-tester 每次启动应用动辄就是几分钟起,想要测试一个方法,上个厕所回来可能应用还没启动,如此低效,怎么愿意去写,fast_tester只需要启动应用一次

五 如何写好单测?

1 工具

工欲善其事必先利其器,抗拒写单测的其中最主要的一个原因就是没有神器在手!

Fast-tester

每次启动应用动辄就是几分钟起,想要测试一个方法,上个厕所回来可能应用还没启动,如此低效,怎么愿意去写,fast_tester只需要启动应用一次(tip: 添加注解及测试方法需要重新启动应用),支持测试代码热更新,后续可随意编写测试方法,一个字“秀”!

使用方式:

(1)需要引入jar包
 

改动后:将入参改为List sourceInfos, int pageSize, String aliuid,将String[]改为SourceInfo,提升代码可读性,否则无从得知s[0]表示什么,s[1]表示什么,在写单测时需要:

  • 构造List列表
  • 构造SourceInfo对象

经过改造,可测试性、可读性均有提升,另外在这个例子中其实user对象只使用了aliuid,无需传入整个对象,遵循KISS原则。
 

 还想再举一个

以下这个方法先不说可读性问题,单从编写单测来验证逻辑是否正确,在写单测时需要:

  • 构造sourceInfos列表
  • 构造String数组
  • 构造map对象
  • 构造List
  • 构造User 对象

显然这个方法是非常复杂的,但是逻辑就是得到一个指定长度列表。
 

提高代码正确性

  • 流程判读符合预期,按照步骤运行,逻辑正确。
  • 执行结果符合预期,代码执行后,结果正确。
  • 异常输出符合预期,执行异常或者错误,超越程序边界,保护自身。
  • 代码质量符合预期,效率,响应时间,资源消耗等。

发现设计问题

  • 代码可测性差
  • 方法封装不合理
  • 流程不合理
  • 设计漏洞等

提升代码可读性

  • 易写单测的方法一定是简单好理解的,可读性是高的,反之难写的单测代码是复杂的,可读性差的。

顺便微重构

  • 如设计不合理可微重构,保证代码的可读性以及健壮性。

提升开发人员自信心

  • 经过单元测试,能让程序员对自己的代码质量更有信心,对实现方式记忆更深。

启动速度,提升效率

不用重复启动Pandora容器,浪费大量时间在容器启动上,方便逻辑验证。

场景保存(多场景)

  • 在HSF控制台中只能保存一套参数,而单测可保存多套参数,覆盖各个场景,多条分支,就是一个个测试用例。

CodeReview时作为重点CR的地方

好的单测可作为指导文档,方便使用者使用及阅读

  • 写起来,相信你会发现更多单测带来的价值。

3 举个小例子

改动前:OSS文件夹概念是通过文件名创建的,下面改动前的方法入参是File,该方法可以正常使用,但是在写单测的时候,我发现使用文件有两个成本:

  • 必须要有默认文件。
  • 要编写获取文件的路径的方法。

坑:本地获取的路径与在容器获取的路径是不一致的,复杂度明显增高。

(编辑:烟台站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读