gpt4 book ai didi

java - 如何按顺序制作junit测试运行方法

转载 作者:IT老高 更新时间:2023-10-28 13:44:36 26 4
gpt4 key购买 nike

伙计们!我有一个新问题要问你。我正在使用不同的缓存管理器将一些数据添加到缓存中,但我正面临着它的问题。我正在使用junit和spring来做。当我运行测试时,测试方法是随机执行的,但我需要它们按顺序执行。怎么做??这是一些代码和验证控制台输出:

服务类:

@Service("HelloCache")
public class CacheServiceImpl implements CacheInterface {
@Autowired
@Qualifier("memcachedClient")
private MemcachedClient mBean;

public void Add(String key, Object object) {
mBean.set(key, 12, object);
}

public void Get(String key) {
mBean.get(key);
}

public void Delete(String key) {
mBean.delete(key);
}
}

这里是测试:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "file:src/main/java/spring.xml")
public class UsingMemcachedTest extends TestCase {
@Autowired
@Qualifier("HelloCache")
private CacheInterface emcached;
private byte[][] i = new byte[2500][3000];
private String key = "j";
@Test
public void testAddBulkObjects() {
System.out.println("");
System.out.println("This is async BULK adding test");
long time = System.currentTimeMillis();
for (int k=1; k<=1000; k++) {
emcached.Add(key+k, i);
}
long time2 = System.currentTimeMillis();
long timeE=time2-time;
System.out.println("Vremya add BULK objects: " + timeE);
System.out.println("");
}

@Test
public void testGetBulkObjects() {
System.out.println("");
System.out.println("This is getting BULK objects test");
long time = System.currentTimeMillis();
for (int k=1; k<=1000; k++) {
emcached.Get(key+k);
}
long time2 = System.currentTimeMillis();
long timeE=time2-time;
System.out.println("Vremya Get object: " + timeE);
System.out.println("");
}

@Test
public void testDeleteBulkObjects() {
System.out.println("");
System.out.println("This is deleting BULK objects test");
long time = System.currentTimeMillis();
for (int k=1; k<=1000; k++) {
emcached.Delete(key+k);
}
long time2 = System.currentTimeMillis();
long timeE=time2-time;
System.out.println("Vremya delete object: " + timeE);
System.out.println("");
}

然后输出:

This is deleting BULK objects test
Vremya delete object: 137


This is getting BULK objects test
Vremya Get object: 703


This is async BULK adding test
Vremya add BULK objects: 87681

请帮忙!! =)

最佳答案

从 4.11 版开始,您可以使用注释指定执行顺序并按方法名称排序:

import org.junit.Test;
import org.junit.FixMethodOrder;
import org.junit.runners.MethodSorters;

@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class MyTest {

@Test
public void test1Create() {
System.out.println("first");
}

@Test
public void test2Update() {
System.out.println("second");
}
}

See JUnit 4.11 Release Notes

关于java - 如何按顺序制作junit测试运行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15754094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com