2010-11-18 86 views
1

我寫一個小型一體化一塊以檢索從TestCase的管理工具的測試用例在Java中,我有以下情況: -重複檢查在Java中

1)我的測試用例是「失敗」,那時我正在使用測試用例名稱檢查失敗的測試用例的缺陷管理工具中是否存在任何缺陷,因爲測試用例名稱和缺陷名稱在我們的例子中是相同的。 如果沒有,我正在記錄新的缺陷。這可以。

2)另一種情況是,我有第一次「通過」的測試用例,爲此我還要檢查缺陷管理工具中是否存在任何重複缺陷,儘管我不打算記錄任何缺陷。

我這樣做是因爲我不知道測試用例在第一次嘗試中是否是「通過」或「失敗」。因此,我正在做這個強制性檢查,以查看重複缺陷是否存在或不是「通過」和「失敗」測試用例。 我知道檢查「pass」測試用例的缺陷是否存在是錯誤的。但是我沒有選擇。如果測試用例「通過」,有什麼方法可以忽略調用缺陷方法的重複存在? 我想要你們對此的看法。

這是我的代碼: -

 private int NOT_TESTED = 0; 
    private int PASSED_1 = 0; 
    private int PASSED_2 = 0; 
    private int FAILED =0; 

    private String testStatus = "pass"; // will be fetched dynamically 
    private void execute(){ 
     if(testStatus.equalsIgnoreCase("fail")){ 
     //FAILED--; 
     FAILED = FAILED + 1; 
     System.out.println("the failed value is:"+FAILED); 
     }else if(testStatus.equalsIgnoreCase("pass")){// first attempt 
     PASSED_1 = PASSED_1 + 1; 
     System.out.println("the Passed_1 value is:"+PASSED_1); 
     if(PASSED_1 == 1){ 
     System.out.println("Passed in the first attempt, hence no need to create a defect"); 
     } 
     }else if(testStatus.equalsIgnoreCase("pass") && FAILED ==1){// second attempt 
     PASSED_2 = PASSED_2+1; 
     System.out.println("the Passed_2 value is:"+PASSED_2); 
     if(PASSED_2 ==1){ 
     System.out.println("Passed in the second attempt, create a defect"); 
     // logic to create a new defect 
     } 
     }else { 
     System.out.println("The test not tested"); 
     } 

} 

此代碼不能工作,因爲它總是第一遍嘗試狀態,因此,請不要提供解決方案以發現測試用例在傳遞第二次嘗試(FAIL-> PASS),以便我們可以對此採取適當的行動。

在此先感謝。

回答

0

如果條件(testStatus.equalsIgnoreCase("pass") && FAILED ==1)是真實的,就意味着之前的情況也是如此:

if(testStatus.equalsIgnoreCase("pass")) 

由於您使用的if-else,它會進入第一個條件,然後跳過休息。 在這兩者之間切換會給你想要的結果。