2011-08-17 90 views
0

下面的代碼片段位於我的JUnit測試用例類中。我使用三個線程來測試一個名爲SharedResources的類; getGuy只是其中之一。我的問題是在啓動線程後,只有第一個讀取sharedResource,並且只有一次。JUnit測試用例中的線程測試SharedResource類

Thread getGuy = new Thread(new Runnable() { 
     public void run() { 
      for(int i=0; i < 5; i++) { 
       try { 
        Thread.sleep(500); 
       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } 
       System.out.println("I consume",resource.get()); 
      }//for 
     } 
    }); 

感謝您的任何幫助。

+1

需要更多的上下文,更多的代碼。 – Thilo

+0

+1更多的上下文。你期待它做什麼?你試圖運行的測試場景是什麼(即其他兩個線程做了什麼以及你期望的結果是什麼)?其他線程對資源做了什麼?你的代碼中的任何睡眠都會造成不可預知的測試......至少,不可預測的交錯使得測試很難寫 – Toby

回答

0

這是一個基本的生產者 - 消費者設計。而不是創建生產者和消費者類,我只需創建sharedResource類。然後在JUnit測試用例中,我創建了生產者和消費者線程。 getGuy是一個消費者線程。

謝謝