您的位置:首页 > 其它

SSH框架学习(十、Junit+GroboUtils进行多线程测试)

2012-12-09 16:10 260 查看
Junit4不能模拟多线程的情况,需要其他支持,我用的是GroboUtils,最新版本5,下载地址:http://groboutils.sourceforge.net/downloads.html

GroboUtils测试的代码是用网上抄来的,来源:http://www.coderli.com/multi-thread-junit-grobountils

UserDAOImplTest的代码

package demo.myssh.dao.impl;

import net.sourceforge.groboutils.junit.v1.MultiThreadedTestRunner;
import net.sourceforge.groboutils.junit.v1.TestRunnable;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.test.annotation.Repeat;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.*;
import demo.myssh.dao.IUserDAO;
import demo.myssh.model.User;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "file:WebRoot/WEB-INF/applicationContext.xml" })
public class UserDAOImplTest {

@Autowired
@Qualifier("iUserDAO")
private IUserDAO userDao;

@Test
@Repeat(2)
public void MultiRequestsTest() {
// 构造一个Runner
TestRunnable runner = new TestRunnable() {
@Override
public void runTest() throws Throwable {
// 测试内容
// System.out.println("a");
userDao.save(new User("aa", "bb", "cc"));
}
};
int runnerCount = 2;
// Rnner数组,相当于并发多少个。
TestRunnable[] trs = new TestRunnable[runnerCount];
for (int i = 0; i < runnerCount; i++) {
trs[i] = runner;
}
// 用于执行多线程测试用例的Runner,将前面定义的单个Runner组成的数组传入
MultiThreadedTestRunner mttr = new MultiThreadedTestRunner(trs);
try {
// 开发并发执行数组里定义的内容
mttr.runTestRunnables();
} catch (Throwable e) {
e.printStackTrace();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: