Java 后端单元测试实践记录

单元测试

(一) 什么是单元测试

单元测试是软件开发中的一种测试方法,它对软件中最小可测试单元(方法/函数/模块)进行独立的测试。单元测试独立于用户界面,关注内部逻辑和功能。

(二) 单元测试的作用

单元测试的主要目的是发现程序中的错误,确保代码的正确性。通过编写和运行单元测试,开发人员可以及早发现并修复 bug,从而提高代码质量和开发效率。

02

单元测试框架——Junit

(一) JUnit 介绍

1. 单元测试框架

单元测试框架是一种用于编写和运行单元测试的软件工具。单元测试框架提供了一个标准化的环境,用于组织和执行单元测试。

它的主要功能包括:

  • 提供用例组织与执行: 大量的测试用例堆砌在一起,容易产生了扩展性与维护性等问题

  • 提供丰富的断言方法: 用例执行完之后都需要将实际结果与预期结果相比较(断言),从而断定用例是否执行通过。

  • 提供丰富的日志: 当测试用例执行失败时能抛出清晰的失败原因,当所有用例执行完成后能提供丰富的执行结果。例如,总执行时间、失败用例数、成功用例数等。

从这些特性来看单元测试框架的作用是:帮助我们更自动化完成测试,所以,它是自动化测试的基础。

2. Junit

JUnit 是 Java 语言中最流行和最广泛使用的单元测试框架之一。它提供了断言、测试套件和测试报告等功能。

JUnit 官网:junit.org/

(二) JUnit 安装

JUnit 目前分两个版本:JUnit4 和 JUnit5。JUnit5 在 JUnit4 上新增了一些特性,这里主要介绍 JUnit4安装:打开 Maven 项目的 pom.xml 文件,添加依赖:

xml 代码解读复制代码<dependency>    <groupId>junit</groupId>    <artifactId>junit</artifactId>    <version>4.12</version>    <scope>test</scope></dependency>

(三) JUnit 编写单元测试

1. 编写单元测试

假如我要测试的类名称是HelloWorld.Java ,那么我创建的测试类通常称为HelloWorldTest.Java 。

如果涉及到覆盖率统计的话,名称不对有可能会被忽略掉。

一个简单的单元测试用例typescript 代码解读复制代码import static org.junit.Assert.assertEquals;

import org.junit.Test; public class HelloWorldTest {     @Test    public void helloTest() {      //逻辑代码        HelloWorld helloWorld = new HelloWorld();        String result = helloWorld.sayHello();        assertEquals("Hello, World!", result);    }        private class HelloWorld {        public String sayHello() {            return "Hello, World!";        }    }}

@Test:用来注释一个普通的方法为一条测试用例

assertEquals() :方法用于断言两个值是否相等

2. 测试功能模块

被测试类HelloWorld.Java

typescript 代码解读复制代码public class HelloWorld {    public String sayHello(){         return "Hello, World!";    }}

测试类HelloWorldTest.Java​​​​​​​

java 代码解读复制代码public class HelloWorldtTest {    @Test    public void testHello() {        HelloWorld helloWorld = new HelloWorld();        String result = helloWorld.sayHello();        assertEquals("Hello, World!", result);    }}

先 new 出 HelloWorld 类的实例,调用 hello 方法,通过 assertEquals() 断言返回结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值