spring-junit多线程测试

本文介绍了一种使用Grobo Testing JUnit扩展库进行多线程单元测试的方法。通过结合Spring Boot和JUnit,实现了一个复杂的多线程测试案例,有效地验证了在高并发场景下Redis操作的一致性和正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


使用junit进行单元测试的时候,并不能对多线程的操作进行测试。一般情况下是使用main方法来进行测试。但如果项目需要加载大量的配置的情况下,测试类写起来很复杂,需要去写加载各种配置文件的代码。不过可以使用第三方提供的依赖来进行 单元测试,通junit测试一样,只要使用@Test注解即可。


f31ad57c-dda4-3feb-8cc2-f5d9616e68f6.jar
测试代码
package merchantPlatform.service.daoTest;

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

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.zto.Application;
import com.zto.merchantPlatform.redis.impl.Redis123;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@ActiveProfiles("dev")
public class MuiltThreadTest   {

	@Autowired
	private Redis123 redis;

	@Test
	public void setTest() {
		TestRunnable[] trs = new TestRunnable[500];
		for (int i = 0; i < trs.length; i++) {
			trs[i] = new MuiltThread(redis);
		}

		MultiThreadedTestRunner mttr = new MultiThreadedTestRunner(trs);

		try {
			mttr.runTestRunnables();
		} catch (Throwable e) {
			e.printStackTrace();
		}

	}
	
	public Redis123 getRedis() {
		return redis;
	}

	public void setRedis(Redis123 redis) {
		this.redis = redis;
	}

}

class MuiltThread extends TestRunnable{
	private Redis123 redis;
	
	public MuiltThread() {
		super();
	}

	public MuiltThread(Redis123 redis) {
		super();
		this.redis = redis;
	}

	public Redis123 getRedis() {
		return redis;
	}

	public void setRedis(Redis123 redis) {
		this.redis = redis;
	}

	@Override
	public void runTest() throws Throwable {
		for(int j=0;j<100;j++){
			redis.setData(j+"", "ww");
			System.out.println(redis.getData(j+""));
		}
	}
	
}
ConTest 进行多线程单元测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值