2012-02-27 86 views
1

我正在使用ExecutorService来运行并行junit测试。每个测试使用一个随机数生成器来识别自己并独立于其他测试运行。我的情况是这样的如何使用ExecutorService单元测试排序测试用例

  • 测试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

一种方法示例代码做这将是合并的Test1和Test2的作为Test3的子集。事实上,所有这些都可以成为Test4。这样你将只测试1个特定场景。我建议你想办法创建基于场景的测试。