Junit 核心——测试类(TestCase)、测试集(TestSuite)、测试运行器(TestRunner)

首先,把这三个定义简单的说明一下:

1、测试类(TestCase):一个包含一个或是多个测试的类,在Junit中就是指的是包含那些带有@Test注解的方法的类,同一样也被称作“测试用例”;

2、测试集(TestSuite):测试集是把多个相关测试归入一个组的表达方式,在Junit中,如果我们没有明确的定义一个测试集,那么Juint会自动的提供一个测试集,一个测试集一般将同一个包的测试类归入一组;

3、测试运行器(TestRunner):执行测试集的程序。

定义说完了,还有两个好理解的定义:断言(assert)和测试(Test),加上这两个定义,从断言到测试运行器就是从“原子”到“分子”的过程,“原子”组成“分子”的,“分子”包含若干”原子“。

关于测试类就比较好理解了,这里就不再拿出来说了,具体的说一说测试集与测试运行器吧。

一、测试运行器:

本文开篇已经说了关于测试运行器的概念,比较简单:执行测试集的程序,而在Junit中,我们使用测试运行器的方式也特别的简单,主要的是使用Junit的@RunnWith注解

import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;  

@RunWith(value=JUnit4.class)
public class TestRunner {  

}  

在此,我们定义了一个Junit4测试用例的运行器,Junit4包含下面4中测试运行器:

其中,JUnit38ClassRunner是用来告知运行器将要运行的的测试应该是在Junit3.8中运行;Suite 我们会在测试集进行介绍,而Parameterized是我们要详细介绍的

Parameterized(参数化)的测试运行器允许我们使用不同的参数多此运行同一个测试,

1、实现参数化测试运行器,该类必须加上@RunWith(value=Parameterized.class)注解!否则运行Junit报java.lang.Exception: Test class should have exactly one public zero-argument constructor异常

2、必须把测试的期望结果、以及测试参数声明为全局的、私有的!

3、必须创建一个带期望结果、测试参数的构造方法!

4、必须创建一个返回若干个测试参数、期望结果组的静态方法,返回类型为Collection<Integer[]>,并且该方法加以@Parameters( org.junit.runners.Parameterized.Parameters)注解!

其实、我挺烦这么多的必须,条条框框都约束了,哎,没办法啊

时间: 2024-10-13 11:45:10

Junit 核心——测试类(TestCase)、测试集(TestSuite)、测试运行器(TestRunner)的相关文章

Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。

#29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类Truck是Car类的子类,其中包含的属性有载重量payload.每个 类都有构造方法和输出相关数据的方法.最后,写一个测试类来测试这些类的功 能. package hanqi; public class Vehicle { private int wheels; private int weight

一次运行多个测试类2-1个测试类重复测试

package com.mengdd.junit; import junit.extensions.RepeatedTest; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; public class TestAll extends TestCase { public static Test suite() { // 创建一个测试套件 TestSuite

用继承的标准格式写一个类;并测试类中测试

//创建一个动物类 public class Animal { //设置动物的属性    String color;     int leg=4;     String chi="吃饭";} //创建一个猫类继承动物类 public class Cat extends Animal { // 创建公共显示方法猫的特有属性     public void show(){ //打印猫的特有属性         System.out.println(" 特长:抓老鼠");

P1-10:编写测试类

新建测试类 编写测试类 1 package com.dszh.demo2; 2 3 import com.dszh.demo2.entity.User; 4 import com.dszh.demo2.mapper.UserMapper; 5 import org.junit.Test; 6 import org.junit.runner.RunWith; 7 import org.springframework.beans.factory.annotation.Autowired; 8 imp

Junit多用例测试1-运行多个测试类

有两个测试类,叫CalculatorTest和CalculatorTest2.在测试类所在的包中新建一个类,叫做TestAll,如下: package com.mengdd.junit; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; public class TestAll extends TestCase { public static Test s

JUnit 3.8 演示递归删除文件目录的 测试类程序 .

用递归方式来实现删除硬盘的文件或目录(空文件夹) 首先要找到递归的入口及出口,这点很重要,成败在此,呵呵! 代码实现: [java] view plain copy import java.io.File ; class RecursionDeleteFileDemo //利用递归 删除 文件或目录 操作 { public static void deleteFiles(File file) { //递归出口 //判断目前文件,如果是文件 或 是一个空的文件夹,则删除 if(file.isFil

Spring-test使用JUnit时,测试类autowired报错,create bean error

Spring-test使用JUnit时,测试类里面使用autowired会报错, 报create bean error...... 但是controller里面@autowired可以正常运行的. 在网上提问,确认我一定是在扫描包上出现了问题.但是controller里面明明是可以得啊. 等等,我是使用maven构建的项目,项目分成了main.test两个部分.配置文件都在main文件夹下,那么扫到的包相应的都是mian文件夹下的包,而测试类所在的包扫描不到也就理所当然了. 解决方案:暂时先给t

【IntellJ IDEA】idea启动测试类报错Error running &#39;Test1.test&#39;: Command line is too long. Shorten command line for Test1.test or also for JUnit default configuration.

idea启动测试类报错 Error running 'Test1.test': Command line is too long. Shorten command line for Test1.test or also for JUnit default configuration. 注意: 最简单的方法,就是你重新创建一个新的测试类,在里面重新写一遍测试方法,代码都可以粘贴过去. 解决方法: 1.打开本项目的.idea文件夹,找到文件夹中的workspace.xml文件 2.搜索 Proper

springBoot测试类报Failed to resolve org.junit...错误

解决idea写spring boot运行测试类时出现"Failed to resolve org..."的问题 今天在学习spring Boot时,运行测试类运行时长时间下载文件,响应后却出现以下错误: 方法一:修改镜像源 尝试将maven的配置文件改为阿里云的镜像源.路径:你的安装目录/conf/settings.xml,找到<mirrors>标签,在标签内添加以下代码保存退出即可. <mirror> <id>alimaven</id>