Junit 核心——测试类(TestCase)、测试集(TestSuite)、测试运行器(TestRunner)
2017-09-14 11:03
120 查看
首先,把这三个定义简单的说明一下:1、测试类(TestCase):一个包含一个或是多个测试的类,在Junit中就是指的是包含那些带有@Test注解的方法的类,同一样也被称作“测试用例”;2、测试集(TestSuite):测试集是把多个相关测试归入一个组的表达方式,在Junit中,如果我们没有明确的定义一个测试集,那么Juint会自动的提供一个测试集,一个测试集一般将同一个包的测试类归入一组;3、测试运行器(TestRunner):执行测试集的程序。定义说完了,还有两个好理解的定义:断言(assert)和测试(Test),加上这两个定义,从断言到测试运行器就是从“原子”到“分子”的过程,“原子”组成“分子”的,“分子”包含若干”原子“。关于测试类就比较好理解了,这里就不再拿出来说了,具体的说一说测试集与测试运行器吧。一、测试运行器:本文开篇已经说了关于测试运行器的概念,比较简单:执行测试集的程序,而在Junit中,我们使用测试运行器的方式也特别的简单,主要的是使用Junit的@RunnWith注解
在此,我们定义了一个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)注解!其实、我挺烦这么多的必须,条条框框都约束了,哎,没办法啊
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)注解!其实、我挺烦这么多的必须,条条框框都约束了,哎,没办法啊
相关文章推荐
- Junit核心——测试类(TestCase)、测试集(TestSuite)、测试运行器(TestRunner)
- Junit核心——测试类(TestCase)、测试集(TestSuite)、测试运行器(TestRunner)
- Junit核心——测试集(TestSuite)
- Junit核心——测试集(TestSuite)
- 一款免费的.NET智能持续测试运行工具——Mighty-Moose
- java单元测试工具:JUnit4(二)——测试失败、运行流程及常用注解
- Maven项目Junit测试类运行报错
- 基于JUnit和Ant测试程序正在运行使用Kieker(AspectJ)监测方法
- junit 4 测试运行器
- JUnit 3.8 让所有测试程序 实现 复合的测试(TestSuite)
- [JUnit]What are TestCase, TestSuite, BaseTestRunner
- JUnit之TestCase和TestSuite详解
- 运行多个TestCase中的testsuite
- [置顶] maven项目junit测试运行时提示java.lang.NoClassDefFoundError: xx
- Junit指定运行的测试方法
- junit运行测试报异常:java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName......
- TestNG 学习总结 - TestNG运行JUnit测试(十三)
- JUNIT(Parameterized运行参数化测试)
- Junit多用例测试1-运行多个测试类