博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
junit测试套件
阅读量:6821 次
发布时间:2019-06-26

本文共 2382 字,大约阅读时间需要 7 分钟。

在实际项目中,随着项目进度的开展,单元测试类会越来越多,可是直到现在我们还只会一个一个的单独运行测试类,这在实际项目实践中肯定是不可行的。为了解决这个问题,JUnit 提供了一种批量运行测试类的方法,叫做测试套件。

这样,每次需要验证系统功能正确性时,只执行一个或几个测试套件便可以了。测试套件的写法非常简单,我们需要遵循以下规则:

1.  创建一个空类作为测试套件的入口。

2.  使用注解 org.junit.runner.RunWith 和 org.junit.runners.Suite.SuiteClasses 修饰这个空类。

3.  将 org.junit.runners.Suite 作为参数传入注解 RunWith,以提示 JUnit 为此类使用套件运行器执行。

4.  将需要放入此测试套件的测试类组成数组作为注解 SuiteClasses 的参数。

5.  保证这个空类使用 public 修饰,而且存在公开的不带有任何参数的构造函数。

现在OK了,我们来写代码,这里我写2个测试类,然后让这2个类形成一个测试套件,来一起被测试:

package test.junit4test;import org.junit.Assert;import org.junit.Test;public class LinkinTest1{	@Test	public void testTrue()	{		System.out.println("测试一。。。");		Assert.assertTrue(true);	}}
package test.junit4test;import org.junit.Assert;import org.junit.Test;public class LinkinTest2{	@Test	public void testTrue()	{		System.out.println("测试二。。。");		Assert.assertFalse(false);	}}
package test.junit4test;import org.junit.runner.RunWith;import org.junit.runners.Suite;import org.junit.runners.Suite.SuiteClasses;@RunWith(Suite.class)@SuiteClasses({ LinkinTest1.class, LinkinTest2.class })public class LinkinAllTest{}
上例代码中,我将2个测试类放入了测试套件LinkinAllTest中,在 Eclipse 中运行测试套件,可以看到2个测试类被调用执行了。测试套件中不仅可以包含基本的测试类,而且可以包含其它的测试套件,这样可以很方便的分层管理不同模块的单元测试代码。

注意:一定要保证测试套件之间没有循环包含关系,否则无尽的循环就会出现在我们的面前。

OK,最后我们写一个测试组件又包含测试组件的例子结束这篇博客。

package test.junit4test;import org.junit.Assert;import org.junit.Test;public class LinkinTest1{	@Test	public void testTrue()	{		System.out.println("测试一。。。");		Assert.assertTrue(true);	}}
package test.junit4test;import org.junit.Assert;import org.junit.Test;public class LinkinTest2{	@Test	public void testTrue()	{		System.out.println("测试二。。。");		Assert.assertFalse(false);	}}
package test.junit4test;import org.junit.Assert;import org.junit.Test;public class LinkinTest3{	@Test	public void testTrue()	{		System.out.println("测试三。。。");		Assert.assertEquals("1", "1");	}}
package test.junit4test;import org.junit.runner.RunWith;import org.junit.runners.Suite;import org.junit.runners.Suite.SuiteClasses;@RunWith(Suite.class)@SuiteClasses({ LinkinTest1.class, LinkinTest2.class })public class LinkinAllTest1{}
package test.junit4test;import org.junit.runner.RunWith;import org.junit.runners.Suite;import org.junit.runners.Suite.SuiteClasses;@RunWith(Suite.class)@SuiteClasses({ LinkinAllTest1.class, LinkinTest3.class })public class LinkinAllTest2{}

转载于:https://www.cnblogs.com/LinkinPark/p/5232887.html

你可能感兴趣的文章
oracle中数据类型对应java类型
查看>>
【树莓派】树莓派3与手机之间蓝牙连接配置记录
查看>>
com.mongodb.MongoException$CursorNotFound: cursor not found on server异常处理
查看>>
Kotlin : Retrofit + RxAndroid + Realm
查看>>
栈1--出栈序列
查看>>
原码 补码
查看>>
ListView setOnItemClickListener无效原因分析
查看>>
DD测磁盘读写性能
查看>>
CUDA编程(六)进一步并行
查看>>
UML类图和时序图
查看>>
C#中的Form,textBox,Bitmap,PictureBox,Button,WebBrowser
查看>>
Oracle Restart能够用来给Oracle GoldenGate 做 High Availability 使用么?
查看>>
css 五角星 (转)
查看>>
python—networkx:在一张图中画出多个子图
查看>>
Java 泛型 一
查看>>
Linux 系统lsblk和blkid命令
查看>>
SNF快速开发平台MVC-表格单元格合并组件
查看>>
c语言数据类型
查看>>
laravel 如何引入自己的函数或类库
查看>>
python IndentationError: unexpected indent
查看>>