【单元测试】Junit 4(七)--junit4 TestRunnner

article/2025/10/2 10:53:26

Test Runners

我没想到一个特别合适的词来形容Test Runners的作用,所以多说几句:

Test Runners 是具有特殊功能的执行测试用例的通道,也可以理解为测试的执行者,例如可以同时运行多个测试用例,也可以具有这个测试执行者特有的功能。

用法1

/***      Test Runner 示例代码*/
public class TestRunnerDemo {@Testpublic void runnerTest(){org.junit.runner.JUnitCore.runClasses(ExampleUnitTest.class, StudentTest.class);}
}

我们可以通过org.junit.runner.JUnitCore.runClasses()方法来同时运行多个测试class文件,里面的参数个数是随意的,例如示例代码中按照顺序运行了ExampleUnitTest.class和StudentTest.class。

用法2

/***      Test Runner 实例代码2*/
@RunWith(Suite.class)
// 绑定的测试用例集合
@Suite.SuiteClasses({ExampleUnitTest.class, StudentTest.class})
public class TestRunnerDemo2 {
}

With与其他测试用例进行绑定,然后@Suite.SuiteClasses({ExampleUnitTest.class, StudentTest.class})来设置绑定的测试用例的集合,当运行这个测试用例的时候,绑定的集合也会运行。

用法3

package com.lzp.unittestdemo.testrunner;import com.lzp.unittestdemo.Utils;import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;import java.util.Arrays;
import java.util.Collection;/*** <p>* Test Runner 示例代码3*/
@RunWith(Parameterized.class)
public class TestRunnerDemo3 {/*** name可以用来描述这个测试的信息* 其中{index}表示当前的索引值,因为执行的时候会遍历集合* {0} 表示参数键值对的第一个位置* {1} 表示参数键值对的第二个位置,坐标以此类推*/@Parameters()public static Collection<Object[]> data() {return Arrays.asList(new Object[][]{{0, 0}, {1, 1}, {2, 1}, {3, 2}, {4, 3}, {5, 5}, {6, 8}});}private int fInput;private int fExpected;/*** 这里模拟了创建对象的过程,Juit会自动把@Parameters里面的数据集合,按照顺序依次放入构造方法中* */public TestRunnerDemo3(int input, int expected) {fInput = input;fExpected = expected;System.out.println(input + " :" + expected);}/*** 测试方法,通过Assert.assertEquals判断参数是否符合我们的期望* */@Testpublic void test() {Assert.assertEquals(fExpected, Utils.compute(fInput));}
}

使用@RunWith(Parameterized.class)会稍微复杂一点,但是使用起来非常的方便,我们可以创建很多个相同类型的对象,然后通过测试方法对属性进行操作,验证我们创建的类是否符合我们的期望。

用法4

@RunWith(Categories.class)
// 为这个测试添加分类
@Category(MyCategory.class)
// 绑定的测试类集合
@Suite.SuiteClasses( { TestRunnerDemo.class, TestRunnerDemo3.class })
// 交集,运行SuiteClasses中与自己分类相同的测试类
//@Categories.IncludeCategory(MyCategory.class)
// 除去交集,运行SuiteClasses中与自己分类不同的测试类
@Categories.ExcludeCategory(MyCategory.class)
public class TestRunnerDemo4 {@Testpublic void test(){assertEquals(4, 2 + 2);}
}

使用@Category可以对测试类添加分类,然后和@Suit结合使用,可以同时运行相同分类或不同分类的测试,算是上一种用法的升级版。

用法5

有时候我们会把测试方法卸载内部类中,这个时候我们需要使用@RunWith(Enclosed.class),这样可以运行内部类的测试方法, 这里贴出官方的demo连接:https://github.com/junit-team/junit4/wiki/%27Enclosed%27-test-runner-example ,大家可以学习一下。

用法6

使用第三方的Test Runner:
img

这是官网的举例,之后我们会用到MockitoJUnitRunner,其他的大家可以自己去了解一下如何使用。


http://chatgpt.dhexx.cn/article/5c4m5h22.shtml

相关文章

浅谈单元测试 Junit4

JUint是Java编程语言的单元测试框架&#xff0c;用于编写和运行可重复的自动化测试。本文主要针对Junit4要点进行梳理总结。 一、浅谈单元测试 1.1 什么是单元测试 单元测试&#xff08;unit testing&#xff09;&#xff0c;是指对软件中的最小可测试单元进行检查和验证。对于…

JUnit4高级篇-由浅入深

JUnit4是JUnit框架有史以来的最大改进&#xff0c;其主要目标便是利用Java5的Annotation特性简化测试用例的编写。 先简单解释一下什么是Annotation&#xff0c;这个单词一般是翻译成元数据。元数据是什么&#xff1f;元数据就是描述数据的数据。也就是说&#xff0c;这个东西在…

Junit4Junit5对比

Junit是Java编程语言的单元测试框架&#xff0c;用来编写单元测试代码。随着Junit5的盛行&#xff0c;与Junit4有何差异。 JDK支持 Junit4需要Java5版本 Junit5需要Java8版本 Maven依赖 Junit4不区分模块&#xff0c;只有一个jar&#xff1a; <dependency><groupId>…

eclipse中Junit4(单元测试)的配置和使用

在项目的实际开发中&#xff0c;我们需要在完成每层的功能代码实现之后去对该功能的代码进行测试&#xff0c;这是因为如果在所有的代码都写完之后在测试的话&#xff0c;会造成调试困难&#xff0c;代码修改起来也很繁琐&#xff0c;这样开发效率会大大降低&#xff0c;不利于…

IDEA中添加junit4的三种方法

1、第一种方法 首先创建一个工程&#xff0c;创建好一个测试类&#xff0c;类的名称最好不要取Test&#xff0c;接下来写下一个注解Test&#xff0c;此时会报错。 报错的原因是创建的工程项目没有导入Junit4依赖&#xff0c;具体查看是在左上角 file–>project structure …

JUnit 4 与 TestNG 对比

Junit 4 和 TestNG 都是 Java 方面非常流行的单元测试框架。在功能上两个框架都非常类似。到底哪个比较好&#xff1f;在Java项目中我们应该选择哪个框架&#xff1f; 下图将会对Junit 4 和 TestNG 做个功能特征的对比。 注解支持 Junit 4 和 TestNG 在注解方面的实现非常相似。…

Junit 4 Tutorials(Junit 4 教程) 一、Junit简介及Junit Eclipse 教程

Junit 测试框架简介 测试框架是最流行的Java单元测试框架。Junit被用来开发对Java类的单元测试。它就是一个类包&#xff0c;提供了各种方法来测试Java类中的方法(method)。 Junit 4 特性 简单的注解&#xff0c;提供书写Junit测试的基本特性断言方法(Assert Methods)比较测试…

JUnit4 与 JUnit 5 常用注解对比

JUnit4 与 JUnit 5 常用注解对比 JUnit4JUnit5说明TestTest表示该方法是一个测试方法。JUnit5与JUnit 4的Test注解不同的是&#xff0c;它没有声明任何属性&#xff0c;因为JUnit Jupiter中的测试扩展是基于它们自己的专用注解来完成的。这样的方法会被继承&#xff0c;除非它…

JUnit4教程(一):基本应用

一、简介 这个估计大家都比我清楚了&#xff0c;JUnit是一个单元测试框架&#xff0c;我们可以基于它编写用来测试代码的代码&#xff0c;从而更方便地进行回归测试。 二、编写测试与断言&#xff08;Assertion&#xff09; 在Junit4中&#xff0c;编写一个测试方法只需要使用…

JUnit4使用教程-快速入门

序言 大学刚学java的时候就听说过JUnit了&#xff0c;单元测试框架&#xff0c;很好用的测试框架&#xff0c;JUnit测试框架将测试更加便捷和容易&#xff0c;编写测试代码也是简单、明了&#xff0c;功能强大。今天我给大家简单分享一下最新JUnit4的使用&#xff0c;几分钟入…

单元测试——junit4入门例子

简单的Junit4 单元测试入门例子 新建第一个测试test case 这次我使用一个简单的例子来介绍如何写一个简单的单元测试&#xff0c;这里所用的测试工具是eclipse。 点击下载->涉及的项目源代码下载 被测文件 Calculate.java package com.junit4.main;public class Calcul…

JUnit4教程

因jdk5中的新特性&#xff0c;JUnit4也因此有了很大的改变。确切的说&#xff0c;Junit4简直就不是3的扩展版本&#xff0c;而是一个全新的测试框架。下面详细介绍JUnit4的使用方法 1.测试方法&#xff1a; 在junit4之前&#xff0c;测试类通过继承TestCase类&#xff0c;并使用…

JUnit4 jar包下载

JUnit4 jar包 链接&#xff1a;https://pan.baidu.com/s/112B-PaQvlTAzEXxHcpC9Sw 密码&#xff1a;ktrn

JUnit4单元测试入门教程

JUnit4单元测试入门教程 - 简书 本文按以下顺序讲解JUnit4的使用 下载jar包单元测试初体验自动生成测试类执行顺序Test的属性 下载jar包## 下载地址 在github上&#xff0c;把以下两个jar包都下载下来。 下载junit-4.12.jar&#xff0c;junit-4.12-javadoc.jar&#xff08;文…

JUnit4的使用和配置

JUnit4是JUnit框架有史以来的最大改进&#xff0c;其主要目标便是利用Java5的Annotation特性简化测试用例的编写。 先简单解释一下什么是Annotation&#xff0c;这个单词一般是翻译成元数据。元数据是什么&#xff1f;元数据就是描述数据的数据。也就是说&#xff0c;这个东西在…

浅谈java单元测试框架junit4/5

0 前言 junit是一个开源的Java语言的单元测试框架。目前junit主要有版本junit3&#xff0c;junit4和junit5。因在junit3中&#xff0c;是通过对测试类和测试方法的命名来确定是否是测试&#xff0c;且所有的测试类必须继承junit的测试基类TestCase&#xff0c;所以本文不再讨论…

IDEA中使用JUnit4(单元测试框架)超详细!

IDEA中使用JUnit4教程 超详细&#xff01;(单元测试框架) 导语&#xff1a;自动化测试的必经之路–Selenium 作者&#xff1a;变优秀的小白 Github&#xff1a;YX-XiaoBai QQ交流群(new): 811792998 爱好&#xff1a;Americano More Ice ! 话不多说&#xff0c;实战为主&…

Junit 4 的使用

一、什么是 Junit 我们来百度一波&#xff0c;什么是 Junit 可以看到哈&#xff0c;Junit 是一个 Java 语言的单元测试框架&#xff0c;这个东西是程序员自测所需要的一个东西&#xff0c;这个测试也被称为白盒测试。&#xff08;下面会去说什么是白盒测试&#xff09; 我们之…

JUnit4

1.JUnit4全面引入Annotation来执行我们编写的测试 2.JUnit4并不要求测试类继承TestCase父类 3.在一个测试类中&#xff0c;所有被Test注解所修饰的public,void方法都是test case,可以被JUnit所执行。 4.虽然JUnit4并不要求测试方法名以test开头&#xff0c;但我们最好还是按照 …

Junit 4详解

Java单元机测试框架 --- Junit4 1、什么是Junit4 JUnit4是一个易学易用的Java单元测试框架,一般我们在写完一段代码或一个方法的时候,都要测试一下这段代码和这个方法的逻辑是不是正确,输入一定的数据,返回的数据是不是我们想要的结果,即我们在写单个业务代码针对结果进行…