assert语句有什么作用?

问题描述

我是Selenium的新手。我试图了解assert@H_502_2@语句的作用。

在下面提到的代码中,我无法指出其存在的原因(第三行)。

driver = webdriver.Chrome('./data/chromedriver.exe') 
driver.get("http://www.python.org") 
assert "Python" in driver.title
@H_502_2@

解决方法

您显然正在将Selenium与Python一起使用。无论如何,可以在许多编程语言中找到assert关键字。

有关assert的语言独立解释,请查看Wikipedia

在计算机编程中,特别是在使用命令式编程范例时,断言是一个谓词(状态空间上的布尔值函数,通常使用程序的变量表示为逻辑命题),它连接到程序,在执行代码时始终应将其评估为true。断言可以帮助程序员阅读代码,帮助编译器进行编译或帮助程序检测其自身的缺陷。

对于后者,某些程序通过在断言运行时实际评估断言来检查断言。然后,如果事实并非如此(断言失败),则程序会认为自己已损坏,并且通常会故意崩溃或引发断言失败异常。

assert的官方Python文档可以在这里找到:

https://docs.python.org/3/reference/simple_stmts.html#the-assert-statement

assert实际上不是函数,而是语句。检查是否满足一定条件。否则,程序将无法以某种方式运行。在Python的情况下,将引发AssertionError

if __debug__:
    if not expression: raise AssertionError

更具体地说,如果在http://www.python.org页面的标题中找不到 Python ,则问题中的断言将失败。

,

assert关键字用于将实际结果与预期结果进行比较。主要用于验证。

例如:如果您正在测试某个URL,则可以验证标题

assert actual_title == expected_title

如果值匹配,则测试用例通过,否则测试用例无法给您AssertionError