Nie*_* B. 8 ruby-on-rails capybara
我想写一个请求规范,验证在给定页面上加载和执行javascript没有任何错误.
我知道我可以在我的JavaScript文件的末尾添加一些东西并断言这些内容的存在,但这感觉就像一个黑客,并迫使我污染我的代码以进行测试.我更愿意做一些事情.
visit some_path
page.should succesfully_run_javascript
Run Code Online (Sandbox Code Playgroud)
小智 3
一种可能污染不太严重的方法是通过在 head 中添加类似的内容来收集任何错误(请记住,这将覆盖您可能已经拥有的任何 onerror 处理程序):
<script>
window.errors = [];
window.onerror = function(error, url, line) {
window.errors.push(error);
};
</script>
Run Code Online (Sandbox Code Playgroud)
然后你可以做类似的事情:
page_errors = page.evaluate_script('window.errors')
Run Code Online (Sandbox Code Playgroud)
并断言数组为空。否则你可以输出错误......
注意:将 scriptlet 添加到 head(可能作为第一个 scriptlet/script 标签)非常重要,因为它需要成为第一个执行的脚本。
| 归档时间: |
|
| 查看次数: |
2081 次 |
| 最近记录: |