Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不带perform()的browser.actions()_Javascript_Selenium_Selenium Webdriver_Protractor - Fatal编程技术网

Javascript 不带perform()的browser.actions()

Javascript 不带perform()的browser.actions(),javascript,selenium,selenium-webdriver,protractor,Javascript,Selenium,Selenium Webdriver,Protractor,最近,我注意到我们的一项测试有以下内容: browser.actions().sendKeys(protractor.Key.RETURN); 这个意图是可以理解的,但实际上它什么也做不了,因为没有调用perform()。出于某种原因,测试本身通过了,这表明测试逻辑和以下期望存在问题 我如何才能尽早发现此类问题,并在理想情况下防止这种量角器/WebDriverJS使用冲突被提交到存储库中?一种选择是使用静态代码分析-有一个ESLintlinting实用程序,它有一组不同的插件。如今,除了其他特

最近,我注意到我们的一项测试有以下内容:

browser.actions().sendKeys(protractor.Key.RETURN);
这个意图是可以理解的,但实际上它什么也做不了,因为没有调用
perform()
。出于某种原因,测试本身通过了,这表明测试逻辑和以下期望存在问题


我如何才能尽早发现此类问题,并在理想情况下防止这种量角器/WebDriverJS使用冲突被提交到存储库中?

一种选择是使用静态代码分析-有一个
ESLint
linting实用程序,它有一组不同的插件。如今,除了其他特定的量角器违规行为外,还有一种情况会被抓住

以下是在这种情况下运行的
ESLint
的输出:

/Users/user/job/app/specs/test.spec.js
36:13  error    No perform() called on browser.actions()        protractor/missing-perform

我希望这可以通过(可编写脚本的)编辑器插件或linter规则实现

这就是说,评估测试脚本的最佳方法当然是真实地运行它,但也要确保所有测试操作都有相应的断言/验证

您的
键.RETURN
可能会对DOM产生一些影响,或者启动一些操作,这些操作的结果可以检测到(页面更改、数据更改等),并且可能比静态分析规则更有意义,更易于阅读