文档章节

使Junit可以测试多线程的插件:groboutils

A__17
 A__17
发布于 2017/08/17 23:24
字数 266
阅读 18
收藏 0

maven依赖:

<dependency>
	<groupId>net.sourceforge.groboutils</groupId>
	<artifactId>groboutils-core</artifactId>
	<version>5</version>
	<scope>test</scope>
</dependency>

注:如果下载失败,则可以选择手动添加
	1)手动下载依赖的地址:https://oss.sonatype.org/content/repositories/opensymphony-releases/net/sourceforge/groboutils/groboutils-core/5/
	2)将下载的jar包放到: repository\net\sourceforge\groboutils\groboutils-core\5 

举例:

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import net.sourceforge.groboutils.junit.v1.MultiThreadedTestRunner;
import net.sourceforge.groboutils.junit.v1.TestRunnable;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring-test.xml")
public class JunitMultiThreadPluginDemo {
	

	[@Test](https://my.oschina.net/azibug)
	public void testThreadJunit() throws Throwable {   
		// 线程数组,模拟并发
		TestRunnable[] testThreadArray = new TestRunnable[10];  
		for(int i=0; i<testThreadArray.length; i++){  
			testThreadArray[i]=new MultiThreadTest();  
		}  

		// 执行多线程测试用例的Runner
		MultiThreadedTestRunner mttr = new MultiThreadedTestRunner(testThreadArray);  
		
		// 并发执行
		mttr.runTestRunnables();  
		
	}  

	/**
	 * TestRunnable:表示一个测试线程的抽象类,子类需要实现该类的runTest()方法,在该方法中实现自己的测试代码
	 */
	private class MultiThreadTest extends TestRunnable {

		[@Override](https://my.oschina.net/u/1162528)
		public void runTest() throws Throwable {	
			 // 在runTest()方法中实现 Thread.run() 中的内容
			execute();
		}
	}
	
	public void execute() {
	
		// 业务逻辑
		System.out.println("在这里完成业务逻辑的相关代码。。");
		
		try {
			Thread.sleep(10000); // 模拟相关代码的执行
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}

}

© 著作权归作者所有

共有 人打赏支持
上一篇: vim中的命令
下一篇: HDFS详解
A__17
粉丝 2
博文 100
码字总数 117532
作品 0
朝阳
私信 提问
Junit使用GroboUtils进行多线程测试

写过Junit单元测试的同学应该会有感觉,Junit本身是不支持普通的多线程测试的,这是因为Junit的底层实现上,是用System.exit退出用例执行的。JVM都终止了,在测试线程启动的其他线程自然也无...

凯文加内特
2015/04/13
0
1
有关Junit的多线程测试

Junit和许多开源软件项目集成在一起,但是Junit执行多线程的单元测试有一些问题。这篇文章介绍Junit的一个扩展类库―――GroboUtils,这个类库被设计为来解决这些问题,并且使在Junit中进行单...

长平狐
2012/10/16
165
0
IDEA配置JUnit进行单元测试

http://www.cnblogs.com/winner-0715/p/5597259.html 前提条件 安装JDK,并配置好环境变量 工程已解决JUnit依赖关系(pom.xml) IDEA中JUnit配置 IDEA自带一个JUnit插件,打开Settings窗口搜...

两毛五哥哥
2017/07/07
0
0
JMockit+JUnit单元测试初始化问题

一、项目环境: WIN7 64位,Eclipse 4.2,JDK1.6,JUnit 4.11,JMockit 1.10 二、示例代码: 使用JUnit + JMockit进行单元测试,运行JUnit Case时,抛出以下错误: java.lang.IllegalStateEx...

dexterman
2014/08/27
0
0
junit多线程测试

现在在做junit多线程测试的项目,里面是用junit3进行开发的,先开始的junit测试是串行模式(按顺 序执行),之后要更改为多线程测试,其中包含的有启动多个数据库和从数据库获得的数据保存到一...

wyzuomumu
2010/12/29
2.6K
10

没有更多内容

加载失败,请刷新页面

加载更多

容器技术系列汇总

docker docker - 在centos7和windows10安装 docker - 镜像加速器 docker - 构建一个简单的docker镜像 docker - 调试Dockerfile docker - 常用命令 docker - Dockerfile常用指令 docker - doc......

细肉云吞
13分钟前
0
0
vue笔记 $set的正确用法

vue2.0 给data对象新增属性,并触发视图更新 如下代码,给 student对象新增 age 属性 data () { return { student: { name: '', sex: '' } } } 众所周知,直接给student赋值操作,虽然可以新...

Carbenson
14分钟前
0
0
Confluence 6 为边栏添加自定义内容

你可以使用 wiki 标记和自定义内容来对边栏进行更进一步的自定义。 希望添加自定义内容到你的边栏中: 进入空间后,然后从边栏的底部选择 空间工具(Space tools) > 外观和感觉(Look and ...

honeymose
18分钟前
0
0
从现在开始!(上海)

从现在开始,我要暂时告别开发了。开始从测试学起,希望自己在测试方面也会有晋升!

政旭Arvin
24分钟前
1
0
网易免费企业邮箱配置客户端

网易免费企业邮箱客户端(pop、imap、smtp)权限默认开启,对应服务器地址为: 发件服务器: SMTP:smtp.ym.163.com 默认端口为:25 (如勾选ssl安全链接,端口号为994) 收件服务器: POP3...

柴高八斗之父
26分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部