如何编写单元测试代码

简介: 一、为什么要单测 - 帮助发现代码缺陷 - 将发现缺陷的时间提前 - 提高产品提测质量,减少后续测试周期 - 可以覆盖所有代码分支、业务逻辑 - 单测可重复使用,减少后续测试成本 - 运行速度快,不依赖其它服务或代码 - 可以mock各种数据二、单测简介 - 何为单测: 单元测试就是用代码测试目标代码的过程。

一、为什么要单测

 - 帮助发现代码缺陷

 - 将发现缺陷的时间提前

 - 提高产品提测质量,减少后续测试周期

 - 可以覆盖所有代码分支、业务逻辑

 - 单测可重复使用,减少后续测试成本

 - 运行速度快,不依赖其它服务或代码

 - 可以mock各种数据

二、单测简介

 - 何为单测:
   单元测试就是用代码测试目标代码的过程。单测针对的是最小单元代码,可以是一个方法,一个类,一个功能点

 - 单测时间:
   开发初期,与开发代码设计并行

 - 单测人员:
   最熟悉代码的人(就目前而言,建议开发)

三、开发工具的使用

image

image

四、编写单测代码

如何编写单测,我们将通过以下简单示例进行分解说明,先看下如下目标代码:

image

首先,我们要理解目标对象逻辑,根据目标逻辑,设计我们的测试场景

  • 目标代码业务逻辑:
    传入的2个参数,首先判断除数,除数=0,则抛出异常;除数≠0,则进行除法运算,并返回商
  • 目标代码理解后,就可以根据其业务逻辑和代码分支,来设计我的单测场景:

    1. 传参正确(被除数=10,除数=5) ,则返回商
    2. 传参中除数=0 (被除数=10,除数=0) ,则抛出异常

其次,就可以针对前面设计的单测场景,编写如下代码,检验目标代码功能是否与预期一致了
image

以下,对这份单测代码的每条语句进行具体的分析

image
image
image

image
image
image
image
image
image

五、运行和调试测试

image

相关文章
|
2月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之idea本地测试代码,要增大 Flink CDC 在本地 IDEA 测试环境中的内存大小如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2月前
|
jenkins Devops 测试技术
单元测试与质量保证:确保Visual Basic代码的健壮性
【4月更文挑战第27天】在VB开发中,单元测试是保证代码质量和软件健壮性的关键。本文介绍了单元测试的基础,包括其定义和好处,如提高代码质量、促进重构。接着,讨论了MSTest、NUnit和xUnit等VB单元测试工具。遵循TDD原则和最佳实践,编写独立、有针对性的测试,并注重测试速度和覆盖率。通过示例展示了如何在Visual Studio中设置和运行测试。最后,提到了持续集成和自动化测试工具,如Jenkins和静态代码分析工具,以提升软件开发效率和质量。单元测试不仅是技术手段,更是提升团队协作和软件工程水平的文化体现。
|
6天前
|
Devops jenkins 测试技术
如何在Visual Basic项目中实施单元测试以确保代码健壮性
【7月更文挑战第2天】本文探讨了如何在Visual Basic项目中实施单元测试以确保代码健壮性。单元测试基础包括验证代码单元的功能,促进重构和提高代码质量。MSTest、NUnit和xUnit是VB.NET的单元测试工具。遵循TDD原则,保持测试独立,关注单一功能,并确保快速执行。示例展示了如何为`Calculator`类的加法方法编写MSTest。持续集成与自动化测试工具如Jenkins和Azure DevOps辅助测试运行和代码质量检查。单元测试是提升软件质量和开发效率的关键实践,反映了良好的开发文化。
11 2
|
19天前
|
测试技术 Python
Python教程:利用timeit模块对代码进行性能测试
在Python中,了解代码的性能是优化和改进的关键。timeit模块是Python标准库中的一个工具,用于测量代码片段的执行时间。本文将介绍timeit模块的各种接口、命令行使用方法以及如何对代码中的函数或类进行性能测试。
24 3
|
3天前
|
数据库
获取本地某文件中的以.jpg文件的名字,并导入数据库的测试代码
获取本地某文件中的以.jpg文件的名字,并导入数据库的测试代码
|
6天前
|
Java 测试技术 开发者
Java中设计可测试的代码的最佳实践
Java中设计可测试的代码的最佳实践
|
7天前
|
Java jenkins 持续交付
Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试
【7月更文挑战第1天】Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试。成功后,Jenkins执行部署任务,发布到服务器或云环境。使用Jenkins能提升效率,保证软件质量,加速上线,并需维护其稳定运行。
43 0
|
10天前
|
测试技术
Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)
Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)
|
1月前
|
Java 测试技术 Web App开发
《手把手教你》系列技巧篇(六十二)-java+ selenium自动化测试-RemoteWebDriver让你的代码与测试分离(远程测试)
【6月更文挑战第3天】本文介绍了在没有本地浏览器的情况下,如何使用RemoteWebDriver进行远程自动化测试。RemoteWebDriver分为客户端和服务端,客户端运行测试代码,服务端启动服务。服务端需要安装JDK、浏览器和对应的WebDriver,并启动selenium-server-standalone.jar。客户端通过URL连接到服务端,并指定预期的浏览器类型。这样,客户端的测试代码就能远程控制服务端的浏览器执行自动化测试。RemoteWebDriver的优点包括跨平台和浏览器测试、提高测试稳定性以及使测试环境和执行代码的机器分离。
33 3
|
17天前
|
前端开发 JavaScript 算法
JavaScript事件监听测试代码
JavaScript事件监听测试代码
11 0