2011-09-13 56 views
0

我正在使用Selenium和TestNG使用dataProvider。我正在驗證名單上有一百個名字。我已將所有這些內容添加到逗號分隔在A CELL中的Excel表格中。我在Java的編程如下:我應該導入哪個類來使用verifyTrue

import static org.testng.AssertJUnit.*; 
public class example extends Base{ 
    @Test(dataProvider="List") 
    public void isListofNamesPresent(String names) throws Exception 
    String list[] = names.split(","); 
    for(int i=0; i<list.length; i++){ 
     assertTrue(selenium.isTextPresent(list[i])); 
     Reporter.log("Type of Case:"+ names +" are present"); 
    } 
} 

上面的代碼聲稱這是擺在細胞中(阿倫,詹姆斯,傑克,Hegin,亨利)名稱的列表。既然只有一個圓形的數據如果由於assertTrue而導致實際和預期之間出現任何錯誤,則退出該方法。如果我給verifyTrue,那麼它應該得到執行所有列表,即使實際和預期之間存在不匹配。

任何人都可以請告訴我如何使用verifyTrue?我的意思是我需要導入哪個課程。我無法擴展任何類,因爲我已經擴展了基類。所以任何進口都可以。我嘗試了SeleneseTestCase,但沒有運氣。

在此先感謝

回答

0

另一種方式,你可以做到這一點。將創建自己的verifyTrue()方法,做類似的東西這趕上斷言錯誤:

public static void verifyTrue(boolean condition, String message) { 
    try { 
     Assert.assertTrue(condition, message); 
     log("Expected value: true" + " Actual value: " + condition + " - PASSED ", true); 
    } catch (Throwable e) { 
     log("Expected value: true" + " Actual value: " + condition + " - FAILED " + message, true); 
     addVerificationFailure(e); 
    } 
} 
+0

上面的代碼顯示隱式使用assertTrue。據我所知,海報想要使用verifyTrue而不是assertTrue。因此,它需要一些代碼,只使用verifyTrue,不包括assertTrue –

+0

因爲上面的方法捕獲了斷言的異常,它解決了海報的assertTrue退出方法的問題 - verifyTrue在這裏不會導致轉義。 – mcole

0

可以導入SeleneseTestBase類使用verifyTrue()如下:

import com.thoughtworks.selenium.SeleneseTestBase; 

SeleneseTestCase也可以使用,但不推薦使用。所以。最好使用SeleneseTestBase

相關問題