2016-02-01 79 views
1

我是一個新來的selenium2和Java。有人能解釋一下這個代碼塊中發生了什麼,特別是從「String」這一行嗎?請幫助Java-Selenium2:需要方法說明

private StringBuffer verificationErrors = new StringBuffer(); 
@After 
    public void tearDown() throws Exception { 
    driver.quit(); 
    String verificationErrorString = verificationErrors.toString(); 
    if (!"".equals(verificationErrorString)) { 
     fail(verificationErrorString); 
    } 
    } 

回答

0

它的設計失敗的測試套件,如果verificationErrorsStringBuffer已經通過任何之前的測試填充。它也事先退出當前的WebDriver實例。

這是不完整的,因爲我們看不到任何@Test實例,其中verificationErrors可能會附加到。另外,附加一個大字符串不是分離多個錯誤的好方法。

你可以重寫更乾淨如:

public void tearDown() throws Exception { 
    driver.quit(); 

    if (verificationErrors.length() > 0) { 
     fail(verificationErrors.toString()); 
    } 
+0

安德魯能否請您解釋一下,究竟這行,如果(「」等於(verificationErrorString)!)正在執行。 – pranu

+1

將StringBuffer轉換爲字符串後,該行表示:「如果空白不等於字符串」,即字符串非空?或者:有沒有錯誤?但是您可以對原始StringBuffer進行等效檢查:if(verifierErrors.length()> 0)',它應該更簡單,更易於閱讀。 –

+0

假設你有'@ Test'方法在某些條件下將錯誤消息附加到'verificationErrors'中? –