我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java单元测试工具之JUnit的使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java单元测试工具之JUnit的使用

?1.注解

JUnit提供了非常强大的注解功能,通过@Test注解修饰到方法上,该方法就变为了一个测试方法,执行当前类时,会自动的执行该类下所有带@Test注解的用例。

在使用这些JUnit提供的注解时,需要现在pom.xml文件中进行配置:

		<dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>5.8.2</version>
            <scope>test</scope>
        </dependency>

@Test示例:

除了@Test注解外,还有以下常用注解:

@BeforeEach:当前的方法需要在每个用例执行之前都执行一次
@BeforeAll:当前的方法需要在当前类下所有用例执行之前执行一次,且被该注解修饰的方法必须为静态方法
@AfterEach:当前的方法需要在每个用例执行之后都执行一次
@AfterAll:当前的方法需要在当前类下所有用例执行之后执行一次,且被该注解修饰的方法必须为静态方法

?2.断言

检查测试方法的期望结果值和真实返回值,通过Assertions类实现。

  • 断言匹配/不匹配:assertEquals()、assertNotEquals()
  • 断言结果为真/为假:assertTrue()、assertFalse()
  • 断言结果为空/非空:assertNull()、assertNotNull()
@Test
    void a() {
        Assertions.assertTrue(1==1);
    }

?3.用例的执行顺序

如下图所示,测试用例的执行并不会按照我们编写代码的顺序来执行

如果在实际测试中,我们需要完成连贯的多个步骤的测试,是需要规定测试用例执行的顺序的,可以通过@order注解来实现排序:

  • 先使用注解说明当前类下所有的用例需要使用@Order注解来进行排序(注意:该注解必须要用在类上)
  • 然后通过@Order来指定用例的具体顺序

?4.参数化

参数化就是尽可能的通过一个用例,多组参数来模拟用户的行为
在使用参数化注解之前需要先用@ParameterizedTest声明该方法为参数化方法,然后再通过注解提供数据来源。

单参数:@ValueSource(数据类型方法={参数1,参数2…})

多参数:

1.从注解中手动编写数据源

@CsvSource({“数据组合1”,“数据组合2”…}),每个双引号是一组参数(测试用例)

2.从第三方csv文件读取数据源如果测试用例较多时,在注解处手动编写数据源就有些不方便,我们这时就可以借助第三方csv文件来读取数据源

动态参数:

 // 通过动态方法来提供数据源
    @ParameterizedTest
    @MethodSource("methodParams")
    void dynamicParamsTest(String name,int age) {
        System.out.println("name:"+name+",age:"+age);
    }

    static Stream<Arguments> methodParams() throws InterruptedException {
        // 构造动态参数
        String[] arr=new String[4];
        for (int i=0;i< arr.length;i++) {
            Thread.sleep(500);
            arr[i]=System.currentTimeMillis()+"";
        }
        return Stream.of(
                Arguments.arguments(arr[0],20),
                Arguments.arguments(arr[1],19),
                Arguments.arguments(arr[2],18),
                Arguments.arguments(arr[3],17)
        );
    }

注意:当我们不指定数据源方法名时,会自动的找跟用例方法名同名的静态方法

?5.测试套件

当我们一个类中有多个测试用例时,我们不可能挨个去运行,那样将会很耗费时间,这时我们就需要测试套件来指定类或者指定包名来运行类下或者包下的所有测试用例。

如果要使用测试套件,首先我们需要先创建一个类,通过@Suite注解标识该类为测试套件类(而不是测试类)

然后指定类或者包来运行其下的所有测试用例

指定类来运行用例:

指定包名来运行包下所有的用例:如果使用包名来指定运行的范围,那么该包下的测试类的命名需要以Test/Tests结尾(T必须大写)

到此这篇关于Java单元测试工具之JUnit的使用的文章就介绍到这了,更多相关JUnit使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java单元测试工具之JUnit的使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java单元测试工具之JUnit的使用

本篇文章主要详细介绍单元测试工具JUnit的使用,文章中有详细的代码实例,有一定的参考价值,需要的朋友可以参考阅读
2023-05-15

java测试单元JUnit最简单的使用

只是写一个小入门,简单输出文本。首先,创建一个MessageUtil类,用来测试 (推荐学习:java课程)package com.test.jiao;public class MessageUtil { private String m
java测试单元JUnit最简单的使用
2018-11-15

Android下junit单元测试、logCat的使用

Android下junit单元测试软件测试小知识:根据测试是否知道源代码:黑盒测试:只关心程序执行的过程和结果白盒测试:根据源代码写测试方法或者测试用例。根据测试的粒度:方法测试:function test单元测试:unit test集成测
2022-06-06

Android中使用Junit进行单元测试

不管我们在学习还是在开发的时候,都会用到测试,在Android中进行的Junit单元工具测试需要创建一个类去继承于AndroidTestCase类,同时还需要在主配置文件AndroidManifest.xml中配置相关的信息创建Test类继
2022-06-06

Android Studio中使用junit做单元测试

单元测试(unit testing),是指对软件中的小可测试单元进行检查和验证。比如一个函数,一个方法等。关于单元测试要不要做,由谁来做这些问题暂时抛到一边。本文只是单纯的介绍如何用Android Studio做单元测试。1. 确保你的工程
2022-06-06

使用Junit对Android应用进行单元测试

在本文中,你将会学习到如何在Eclipse中创建Android JUnit的单元测试工程以及在不同的条件下创建及运行自动测试用例。准备工作本文假设读者已经有一定的Android基础知识,并且已经安装了Eclipse和Android SDK等
2022-06-06

Go单元测试工具gomonkey如何使用

使用Go单元测试工具gomonkey,可以模拟函数的返回值、修改函数的行为,以及捕获函数的调用参数等。下面是使用gomonkey的基本步骤:1. 安装gomonkey:```shellgo get -u github.com/agiledr
2023-08-08

Java JUnit 的终极指南:掌握单元测试

JUnit 是 Java 中强大的单元测试框架,提供了一系列功能来验证代码的正确性。本文将全面介绍 JUnit,从基本用法到高级技术,帮助您掌握单元测试的艺术。
Java JUnit 的终极指南:掌握单元测试
2024-02-16

解码 Java JUnit:破解单元测试的秘密

掌握 Java JUnit 单元测试框架的精髓,揭秘其强大功能,提升代码质量,确保软件可靠性。
解码 Java JUnit:破解单元测试的秘密
2024-02-16

Android中如何使用JUnit进行单元测试

在我们日常开发android app的时候,需要不断地进行测试,所以使用JUnit测试框架显得格外重要,学会JUnit可以加快应用的开发周期。Android中建立JUnit测试环境有以下两种方法。一、直接在需要被测试的工程中新建测试类集成步
2022-06-06

Java JUnit 的艺术:高效单元测试的原则

JUnit 的精粹:高效撰写单测的原则
Java JUnit 的艺术:高效单元测试的原则
2024-02-16

Java JUnit 的未来:无限的单元测试可能性

Java JUnit 的未来:革命性的单元测试,释放无限可能性
Java JUnit 的未来:无限的单元测试可能性
2024-02-16

.Net怎么使用Xunit工具进行单元测试

本篇内容介绍了“.Net怎么使用Xunit工具进行单元测试”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!安装Xunit:Xunit的安装现在
2023-07-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录