[英]'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.