文档章节

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

A__17
 A__17
发布于 2017/08/17 23:24
字数 266
阅读 17
收藏 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();
		}
	}

}

© 著作权归作者所有

共有 人打赏支持
A__17
粉丝 2
博文 100
码字总数 117418
作品 0
朝阳
Junit使用GroboUtils进行多线程测试

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

凯文加内特
2015/04/13
0
1
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 5.2.0 发布,Java 单元测试框架

JUnit 5.2.0 发布,JUnit 5.2.0 = Platform 1.2.0 + Jupiter 5.2.0 + Vintage 5.2.0,此次更新包括构建工具的增强、参数化测试的改进等。 更新信息如下: 构建工具功能增强以支持新的模块化体...

雨田桑
05/04
0
0
Junit的新长征-Junit5

这几天做新课时,忽然发现Junit在Junit4这个版本上停留了十几年之后,原来已经出到5了(后知后觉),花了些时间研究了下,发现还真是不简单,我们一起来看看JUnit5上出现了哪些让人激动的新变...

城下秋草
07/17
0
0
Android、JUnit深入浅出(一)——JUnit初步解析

Android、JUnit深入浅出(一)——JUnit初步解析 Android SDK 1.5已经将JUnit包含进来了,但是一直没有去深入了解,以前在使用一些C++的开源库中学习过与CPPUnit,简要分析过其主要框架,如下...

庸人谷
2012/12/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Shiro | 实现权限验证完整版

写在前面的话 提及权限,就会想到安全,是一个十分棘手的话题。这里只是作为学校Shiro的一个记录,而不是,权限就应该这样设计之类的。 Shiro框架 1、Shiro是基于Apache开源的强大灵活的开源...

冯文议
今天
1
0
linux 系统的运行级别

运行级别 运行级别 | 含义 0 关机 1 单用户模式,可以想象为windows 的安全模式,主要用于修复系统 2 不完全的命令模式,不含NFS服务 3 完全的命令行模式,就是标准的字符界面 4 系统保留 5 ...

Linux学习笔记
今天
2
0
学习设计模式——命令模式

任何模式的出现,都是为了解决一些特定的场景的耦合问题,以达到对修改封闭,对扩展开放的效果。命令模式也不例外: 命令模式是为了解决命令的请求者和命令的实现者之间的耦合关系。 解决了这...

江左煤郎
今天
3
0
字典树收集(非线程安全,后续做线程安全改进)

将500W个单词放进一个数据结构进行存储,然后进行快速比对,判断一个单词是不是这个500W单词之中的;来了一个单词前缀,给出500w个单词中有多少个单词是该前缀. 1、这个需求首先需要设计好数据结...

算法之名
昨天
15
0
GRASP设计模式

此文参考了这篇博客,建议读者阅读原文。 面向对象(Object-Oriented,OO)是当下软件开发的主流方法。在OO分析与设计中,我们首先从问题领域中抽象出领域模型,在领域模型中以适当的粒度归纳...

克虏伯
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部