Junit入门到掌握-9-JUnit高级-TestSuite和举例

2024-06-11 10:48

本文主要是介绍Junit入门到掌握-9-JUnit高级-TestSuite和举例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前面几篇介绍完了JUnit的基本功能和基本使用场景以及用法,一般来说,现在的开发都是一个人一个模块,如果一个开发,写一个业务代码的类,然后利用前面的知识是可以完成最基础的单元测试,起码证明他写的方法是可以通过单元测试,至少开发会做正向成功的用例。这篇开始来学习JUnit作为一个单元测试框架的高级部分,我们先从TestSuite开始。

 

1.测试套件 TestSuite

不要笑,我们先来学习下Suite这个单词的发音,很多人会自然地念成(shoot,例如休特(哈哈)),其实这个单词念swēt(Swei,类似这个发音)。

第一个特点,需要在这个class name之前一行添加上面两个注解

第二个特点,也是核心,TestSuite就是用来管理多个Junit Test Case。

 

2.举例练习

为了模拟多个测试类,我们在新建一个测试类,只写一个测试方法。

代码如下

package test;import static org.junit.Assert.assertEquals;import org.junit.Test;public class HelloJunitTest {@Testpublic void test() {assertEquals(5, "Hello".length());}
}

开始我们的TestSuite创建过程。右键包,选择new-other..-Junit Test Suite

自动帮我们导入上面提到两个Suite注解

package test;import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;@RunWith(Suite.class)
@SuiteClasses({ HelloJunitTest.class, TrackingServiceTests.class })
public class ProteinTrackerSuite {}

可以在这个代码中点击class名称,右键-run as Jnuit,或者在工程中右键这个xxxSuite.java文件,然后run as JUnit。

从这个图可以看到,两个被管理的TestCase中的JUnit用例都被执行了。试想一下,如果我管理好几十个这样class,每一个class都写十来个单元测试用例,那么这就是几百个单元测试用例,通过运行一个文件去执行几百个单元测试用例,也就是一条命令就可以实现,也就是可以放jenkins上做持续集成测试。如果TestSuite管理class很多,我们推荐这样格式去写suite文件。

package test;import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;@RunWith(Suite.class)
@SuiteClasses({ HelloJunitTest.class, TrackingServiceTests.class // 接着写其他被测单元测试类
})public class ProteinTrackerSuite {}

TestSuite就介绍到这里。

 

 

 

 

 

这篇关于Junit入门到掌握-9-JUnit高级-TestSuite和举例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1050956

相关文章

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

Java中的for循环高级用法

《Java中的for循环高级用法》本文系统解析Java中传统、增强型for循环、StreamAPI及并行流的实现原理与性能差异,并通过大量代码示例展示实际开发中的最佳实践,感兴趣的朋友一起看看吧... 目录前言一、基础篇:传统for循环1.1 标准语法结构1.2 典型应用场景二、进阶篇:增强型for循环2.

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

MySQL DQL从入门到精通

《MySQLDQL从入门到精通》通过DQL,我们可以从数据库中检索出所需的数据,进行各种复杂的数据分析和处理,本文将深入探讨MySQLDQL的各个方面,帮助你全面掌握这一重要技能,感兴趣的朋友跟随小... 目录一、DQL 基础:SELECT 语句入门二、数据过滤:WHERE 子句的使用三、结果排序:ORDE

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可