【单元测试】【Android】JUnit 4 和 JUnit 5 的差异记录

embedded/2024/11/27 17:52:51/

背景

Jetbrain IDE 支持生成 Test 类,其中选择JUnit5 和 JUnit,但是感觉这不是标准的单元测试,因为接口命名吧。

差异对比

两者生成的单测API名称同原API,没加test前缀的。使用差异主要表现在:

  • setUp & tearDown 的注解
  • 引用的junit
JUnit 版本差异项
JUnit 4JUnit 5
setUp 注解BeforeBeforeEach
tearDown 的注解AfterAfterEach
引用的junitorg.junit.Testorg.junit.jupiter.api.Test
类名修饰符

有修饰符

public class UtilTest

无修饰符,

默认 class UtilTest

方法修饰符

有修饰符

@Before public void setUp() throws Exception { }

无修饰符,

默认@BeforeEach void setUp() { }

代码template

JUnit 5

import static org.junit.jupiter.api.Assertions.*;import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;class UtilTest {@BeforeEachvoid setUp() {}@AfterEachvoid tearDown() {}@Testvoid customTypeSummary() {}

JUnit 4

要求类是公开public的,否则代码报错:

Test class 'UtilTest' is not constructable because it is not 'public' 

import static org.junit.Assert.*;import org.junit.After;
import org.junit.Before;
import org.junit.Test;public class UtilTest {@Beforepublic void setUp() throws Exception {}@Afterpublic void tearDown() throws Exception {}@Testpublic void customTypeSummary() {}

另外有个疑问,怎么才能让main java 类文件能检测到对应的单元测试Coverage?是否跟类生成的方式或者Test类/API命名有关?


http://www.ppmy.cn/embedded/140961.html

相关文章

性能测试工具|如何有效度量前端性能

目标 从用户角度明确前端 Web、H5 性能测试需要重点关注的内容; 根据关注内容明确性能测试过程中的性能评判指标和建议的阈值范围; 整理性能测试过程中各性能评价指标的收集方法; 明确性能测试完毕后的测试结果展现形式。 质量模型 用户…

Leetcode3206:交替组 I

题目描述: 给你一个整数数组 colors ,它表示一个由红色和蓝色瓷砖组成的环,第 i 块瓷砖的颜色为 colors[i] colors[i] 0 表示第 i 块瓷砖的颜色是 红色 。 colors[i] 1 表示第 i 块瓷砖的颜色是 蓝色 。 环中连续 3 块瓷砖的颜色如果是 …

什么是MyBatis?

MyBatis简介 MyBatis是一款优秀的持久层框架,用于简化Java应用程序对数据库的操作。它曾是Apache的一个开源项目,名为iBatis,2010年迁移到Google Code并改名为MyBatis,2013年11月又迁移到了GitHub。 一、MyBatis的作用 在JavaE…

C#水仙花

打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为1531*1*1+5*5*5+3*3*3 首先是3位数那就是100-999,遍历它们&#…

【ArcGIS Pro】实现一下完美的坐标点标注

在CAD里利用湘源可以很快点出一个完美的坐标点标注。 但是在ArcGIS Pro中要实现这个效果却并不容易。 虽然有点标题党,这里就尽量在ArcGIS Pro中实现一下。 01 标注实现方法 首先是准备工作,准备一个点要素图层,包含xy坐标字段。 在地图框…

全面提升系统安全:禁用不必要服务、更新安全补丁、配置防火墙规则的实战指南

在当前的网络环境中,系统面临的安全威胁不断增加。为了防止潜在的攻击和漏洞利用,对操作系统进行安全加固是运维工作的重中之重。本文将从禁用不必要的服务、及时更新安全补丁、以及配置防火墙规则三个方面,详细讲解如何全面提升系统的安全性。 一、禁用不必要的服务 为什…

【C/C++】数据库链接入门教程:从零开始的详细指南!MySQL集成与操作

文章目录 环境配置:搭建开发环境的基础步骤2.1 安装MySQL数据库2.2 配置C/C开发环境2.3 下载并安装MySQL Connector/C 基础操作:实现C/C与MySQL的基本交互3.1 建立数据库连接3.2 执行SQL语句3.3 处理查询结果 进阶技巧:提升数据库操作效率与安…

SQL 复杂查询

目录 复杂查询 一、目的和要求 二、实验内容 (1)查询出所有水果产品的类别及详情。 查询出编号为“00000001”的消费者用户的姓名及其所下订单。(分别采用子查询和连接方式实现) 查询出每个订单的消费者姓名及联系方式。 在…