2012-02-27 85 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個特定場景。我建議你想辦法創建基於場景的測試。