单元测试实战

这篇具有很好参考价值的文章主要介绍了单元测试实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为什么要做单元测试?

测试代码:通过编写和运行单元测试,开发者能够快速验证代码的各个部分是否按照预期工作,有利于保证系统功能的正确可用,这是单元测试的核心作用。
改进代码:编写单元测试的过程中,开发者能够再次审视业务流程和功能的实现,更容易发现一些代码上的问题。比如将复杂的模块进一步拆解为可测试的单元。
利于重构:如果已经编写了一套可自动执行的单元测试代码,那么每次修改代码或重构后,只需要再自动执行一遍单元测试,就知道修改是否正确了,能够大幅提高效率和项目稳定性。
文档沉淀:编写详细的单元测试本身也可以作为一种文档,说明代码的预期行为。

单元测试的几个核心要点是:

最小化测试范围:单元测试通常只测试代码的一个非常小的部分,以确保测试的简单和准确。
自动化:单元测试应该是自动化的,开发人员可以随时运行它们来验证代码的正确性,特别是在修改代码后。而不是每次都需要人工去检查。
快速执行:每个单元测试的执行时间不能过长,应该尽量做到轻量、有利于频繁执行。
独立性:每个单元测试应该独立于其他测试,不依赖于外部系统或状态,以确保测试的可靠性和可重复性。

单元测试目标

新模块中核心代码单元测试覆盖率80%??
新模块中整体单元测试覆盖率60%??

单元测试框架

JUnit

JUnit是一个为Java编程语言设计的开源单元测试框架,由 Kent Beck 和 Erich Gamma建立,它是单元测试框架家族中的一个,这些框架被统称为xUnit,JUnit是xUnit 家族中最为成功的一个。JUnit 有它自己的 Junit 扩展生态圈,多数 Java 的开发环境都已经集成了 JUnit 作为单元测试的工具。JUnit 的最新版本是JUnit 5,它不再是一个单一的JAR 包,而是由JUnit platform(平台)、JUnit Jupiter 和JUnit Vintage 这3 部分组成。
官网地址:JUnit 5

<!-- junit mvn 配置 待补充 -->

TestNG

TestNG 是另一个为Java编程语言设计的开源单元测试框架,是一个受JUnit和NUnit启发而来的测试框架,但它引入了一些新功能,使其更强大、更容易使用,例如:

  • 核心特性是多线程测试执行,测试代码是否是多线程安全的;
  • 提供注释支持;
  • 支持数据驱动测试(使用@DataProvider);
  • 支持参数化测试;
  • 强大的执行模型(不再有TestSuite);
  • 支持各种工具和插件(Eclipse, IDEA, Maven等…);
  • 嵌入BeanShell以获得更多的灵活性;
  • 用于运行时和日志记录的默认JDK函数(没有依赖关系)。

官网地址:https://testng.org/

<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>7.8.0</version>
</dependency>

单元测试工具:

单测生成&单测覆盖率统计工具:

  1. Idea的TestMe插件
  2. Squaretest

参考:
软件测试/测试开发 | TestNG 与 Junit 对比,测试框架如何选择?
TestNG和Junit的区别
2021年软件测试工具总结——单元测试工具
【好物推荐】一款帮我快速达成单元测试的覆盖率指标的IDEA插件 —— TestMe
idea单元测试覆盖率提升插件文章来源地址https://www.toymoban.com/news/detail-771469.html

到了这里,关于单元测试实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单元测试实战

    测试代码 :通过编写和运行单元测试,开发者能够快速验证代码的各个部分是否按照预期工作,有利于保证系统功能的正确可用,这是单元测试的核心作用。 改进代码 :编写单元测试的过程中,开发者能够再次审视业务流程和功能的实现,更容易发现一些代码上的问题。比

    2024年02月03日
    浏览(36)
  • Netty实战(九)单元测试

    单元测试的基本思想是:以尽可能小的区块测试代码,并且尽可能地和其他的代码模块以及运行时的依赖(如数据库和网络)相隔离。如果应用程序能通过测试验证每个单元本身都能够正常地工作,那么在出了问题时将可以更加容易地找出根本原因。 ChannelHandler 是 Netty 应用

    2024年02月11日
    浏览(33)
  • 现代C++编程实战25-两个单元测试库:C++里如何进行单元测试

    你好,我是吴咏炜。 单元测试已经越来越成为程序员工作密不可分的一部分了。在 C++ 里,我们当然也是可以很方便地进行单元测试的。今天,我就来介绍两个单元测试库:一个是 Boost.Test [1],一个是 Catch2 [2]。 单元测试库有很多,我选择 Boost 的原因我在上一讲已经说过:“

    2024年02月07日
    浏览(41)
  • 单元测试实战(四)MyBatis-Plus 的测试

    为鼓励单元测试,特分门别类示例各种组件的测试代码并进行解说,供开发人员参考。 本文中的测试均基于JUnit5。 单元测试实战(一)Controller 的测试 单元测试实战(二)Service 的测试     单元测试实战(三)JPA 的测试 单元测试实战(四)MyBatis-Plus 的测试 单元测试实战(

    2024年01月15日
    浏览(41)
  • Junit4 + Mockito进行单元测试实战案例

    ​ 实战代码案例: ​​​​​​​​​​​ 注意:idea2021.3.3之前的版本都搜索不到这个插件。 使用TestMe自动生成单元测试代码: 不是自动化执行的单元测试都是无意义的,项目中那么多单测,难道一个一个点吗? 引入maven-surefire-plugin插件用于自动化执行单测。 include里表

    2024年02月16日
    浏览(52)
  • Python web实战之细说 Django 的单元测试

      : Python Web 开发、Django、单元测试、测试驱动开发、TDD、测试框架、持续集成、自动化测试 大家好,今天,我将带领大家进入 Python Web 开发的新世界,深入探讨 Django 的单元测试。通过本文的实战案例和详细讲解,你将学会如何使用单元测试来保证代码质量,提高开

    2024年02月12日
    浏览(37)
  • 【单元测试】一文读懂java单元测试

    单元测试 是软件开发中常用的一种测试方法,用于验证代码的单个功能单元是否按照预期工作。 测试方法: 白盒测试(White Box Testing):在白盒测试中,测试人员了解代码的内部结构和实现细节,编写测试用例来覆盖不同的代码路径和逻辑条件。 黑盒测试(Black Box Testing)

    2024年04月17日
    浏览(44)
  • 掌握 xUnit 单元测试中的 Mock 与 Stub 实战

    上一章节介绍了 TDD 的三大法则,今天我们讲一下在单元测试中模拟对象的使用。 Fake - Fake 是一个通用术语,可用于描述 stub 或 mock 对象。 它是 stub 还是 mock 取决于使用它的上下文。 也就是说, Fake 可以是 stub 或 mock Mock - Mock 对象是系统中的 fake 对象,用于确定单元测试是

    2024年04月12日
    浏览(35)
  • 单元自测Java 单元测试规范

    目录 1、前言 1.1 定义 1.2 单元测试CheckList 1.3 测试模型 1.3.1 冰淇淋模型 1.3.2 金字塔模型 1.4 为什么要做单元测试 1.5单元测试编码规则 1.6 单元测试用例的设计要素  2、测试框架介绍 3、单元测试开发规范 3.1 注意事项 3.2 命名规范 3.3 输入数据规范 3.4 结果校验规范         单

    2024年02月15日
    浏览(36)
  • SpringBoot 实战:JUnit5+MockMvc+Mockito 做好单元测试

    因为继承了 spring-boot-starter-parent ,所以我们依赖的 spring-boot-starter-test 不需要写具体的版本,可以直接集成父级的版本定义。其中, spring-boot-starter-web 是用于提供 REST API 的 web 容器, spring-boot-starter-test 可以提供各种测试框架的, spring-boot-maven-plugin 是将 SpringBoot 应用打包为

    2024年04月15日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包