[英]'assert' vs. 'verify' in Selenium
Selenium 執行的檢查通常有兩種形式:assertFoo 和 verifyFoo。 我知道 assertFoo 使整個測試用例失敗,而 verifyFoo 只是指出該檢查的失敗並讓測試用例繼續進行。
因此,使用 verifyFoo 我可以獲得多個條件的測試結果,即使其中之一失敗。 另一方面,對我來說,一次失敗的檢查就足以知道,我的編輯破壞了代碼,無論如何我都必須糾正它們。
在哪種具體情況下,您更喜歡這兩種檢查方式中的一種? 你的哪些經歷激發了你的觀點?
我將使用assert()
作為測試的入口點(“網關”)。 只有當斷言通過時, verify()
檢查才會被執行。 例如,如果我正在檢查由一系列操作產生的窗口內容,我會assert()
窗口的存在,然后verify()
內容。
我經常使用的一個例子 - 檢查 jqgrid 中的估計值: assert()
網格的存在,和verify()
估計值。
我遇到了一些通過使用克服的問題
assert*()
代替
verify*()
例如,在表單驗證中,如果你想檢查一個表單元素,使用
verifyTrue(...);
即使字符串不存在於表單中,也只會通過測試。
如果你用驗證替換斷言,那么它會按預期工作。
我強烈建議使用assert*()
。
如果您在生產系統上運行 Selenium 測試並希望確保您以測試用戶身份登錄,而不是您的個人帳戶,那么在觸發任何如果意外使用會產生意想不到的效果的動作。
通常你應該堅持每個測試用例一個斷言,在這種情況下,差異歸結為任何必須運行的拆卸代碼。 但是無論如何你應該把它放在@After
方法中。
我在 SeleneseTestBase 中的verify*()
方法有很多問題(例如,它們使用System.out.println()
,而com.thoughtworks.selenium.SeleneseTestBase.assertEquals(Object, Object)
只是不做你期望)所以我已經停止使用它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.