五分钟技术趣谈 | 单元测试的重要性及方案推荐

五分钟技术趣谈 | 单元测试的重要性及方案推荐,单元测试是一种软件测试方法,用于测试软件系统的最小可测试单元,例如函数、方法或类的行为。单元测试通常由开发人员编写,并在编写代码时就开始执行。这样可以保证实时检测代码中的错误、缺陷和潜在的问题,确保代码满足预期的行为和输出。,单元测试可以分为如下几个步骤,然后在开发中就可以不断地编写、执行、分析测试用例,并修复问题。,– Junit5,
,图片,JUnit是Java领域内最为流行的单元测试框架,Junit测试又称白盒测试,旨在验证被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit的最新版本Junit 5集合了 Junit Platform、Junit Jupiter、Junit Vintage等。其中,Junit Platform是在JVM上启动测试框架的基础;Junit Jupiter提供了新的编程模型,包含了一个测试引擎,在Junit Platform上运行;Junit Vintage 提供了兼容JUnit4.x,Junit3.x的测试引擎,帮助老项目依赖包的过度升级。Springboot2.2.0+中默认集成:,常用注解及说明如下:,@Test :表示方法是测试方法(即框架操作对象),与JUnit4的@Test不同,JUnit5的@Test非常单一不能声明任何属性,拓展的测试都由Jupiter提供,@DisplayName :为测试类或者测试方法设置展示的名称,@BeforeAll :表示在所有单元测试方法之前执行,@AfterAll :表示在所有单元测试方法之后执行,@BeforeEach :表示在每个单元测试方法之前执行,@AfterEach :表示在每个单元测试方法之后执行,@Timeout :表示测试方法运行超过指定时间将会抛出TimeoutException异常,@Disabled :表示测试类或测试方法不执行,类似于JUnit4中的@Ignore,@RepeatedTest :表示方法需要重复执行的次数,@ExtendWith :为测试类或测试方法提供@Autowired的IOC注入,– JMH,JMH(Java Microbenchmark Harness)是java领域用于代码微基准测试的工具套件,主要是基于方法层面的基准测试,精度可以达到纳秒级,它是由Java虚拟机团队开发的。当你定位到热点方法,希望进一步优化方法性能的时候,就可以使用 JMH 对优化的结果进行量化的分析,springboot集成方式导入依赖包如下(最新版本1.36):,JMH的应用场景如下:,(1)想准确地知道某个方法需要执行多长时间及执行时间和输入之间的相关性;,(2)对比接口不同实现在给定条件下的吞吐量;,(3)查看多少百分比的请求在多长时间内完成。,上述两个方案前者是确保代码运行的正确性,后者旨在测试代码运行的性能,在项目实战中可以做到强强联合,确保代码质量和稳定性,帮助完善或改进设计和架构,编写高质量的单元测试需要遵循最佳实践。,单元测试的目的是为了验证软件开发的功能、性能、完整性。当软件发生变化时,单元测试可以帮助开发人员确定哪些部分受到影响,以及如何更改代码。还可以帮助开发人员了解他们的代码,从单元测试中获得反馈,从而更好继续开发软件。文中提到的基于JUnit5和JMH两种互补方案,可以从代码功能和性能两个角度保证软件交付成果。, 参考文献,[1] 蔡高亮,2008, 软件单元测试[J],http://www.its.cesi.cn/qkContent/articleDetail/1043,2023/3/13.

文章版权声明

 1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/26364.html

 2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈

 3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)

 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年6月23日
下一篇 2023年7月15日