我认为
Thread-weaver测试框架可以帮到你.我已经尝试过它已经有一段时间了,但它确实允许你强制进行特定的调度.它也可以在某种默认模式下运行,其中测试两种方法之间的大量交错.
这是一个简单的示例测试(使用默认交错)
public class MyListTest {
private MyList list;
@Test
public void testThreading() {
AnnotatedTestRunner runner = new AnnotatedTestRunner();
// Run all Weaver tests in this class, using MyList as the Class Under Test.
runner.runTests(this.getClass(), MyList.class);
}
@ThreadedBefore
public void before() {
list = new MyList<>();
}
@ThreadedMain
public void mainThread() {
list.putIfAbsent("A");
}
@ThreadedSecondary
public void secondThread() {
list.putIfAbsent("A");
}
@ThreadedAfter
public void after() {
assertThat(list).hasSize(1);
}
}
这篇博客介绍了Thread-weaver测试框架如何帮助开发者进行并发测试。通过一个具体的MyListTest示例,展示了如何设置和运行测试,包括@ThreadedBefore、@ThreadedMain、@ThreadedSecondary和@ThreadedAfter注解的使用,确保在并发环境中测试代码的正确性。
3076

被折叠的 条评论
为什么被折叠?



