如何使用ExecutorService单元测试对测试用例进行排序

时间:2012-02-27 10:49:12

标签: java junit

我正在使用ExecutorService来运行并行的junit测试。每个测试使用随机数生成器来标识自身并独立于其他测试运行。我的情况就像这样

  • 测试1将新用户添加到系统中
  • 测试2搜索系统中具有某些特征的用户
  • 测试2.1选择一个搜索到的用户,然后发送请求
  • 测试3现在使用测试1中的身份,并检查是否有待处理的请求。但是这个测试直到1和2运行才能运行。他们还需要来自test1的一些数据。

我知道我可以使用公共静态变量来保存和恢复test1中的数据。关于这样做的任何想法都很整齐。不想在工作的第一天给人留下不好的印象。

以下示例代码

public class TestCases {
    static ExecutorService exe ;
    public static void main(String[] args) throws Throwable {
        test1() ;
        test2() ;
        test3() ;
    }

   public static void test1() {
       exe = Executors.newCachedThreadPool() ;
       for (int i = 0 ; i < 10 ; i++) {
           Test1 test1 = new Test1() ;
           exe.execute(test1) ;
        }
        exe.shutdown() ;
        while(!exe.isShutDown()) {
        }
    }
    //same for test2 and test3
}

1 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是将Test1和Test2合并为Test3的子集。事实上,所有这些可以是Test4。这样您将只测试一个特定场景。我建议您考虑创建基于场景的测试。