Rails集成测试:assert_select不能处理<script>标记

时间:2017-04-19 16:02:43

标签: ruby-on-rails integration-testing

我正在编写集成测试,测试Google Analytics javascript在各种条件下的存在(或缺乏)(主要是,如果登录用户是系统管理员,我不会加载它)。

&#xA;&#xA;

页面中的实际脚本标记如下所示:

&#xA;&#xA;
 &lt; script async =“”src =“https://www.google-analytics.com/analytics.js”&gt;&lt; / script&gt;&#xA;  
&#xA;&#xA;

如果我使用 assert_match 测试其存在,它可以工作:

&#xA;&#xA;
  assert_match'https://www.google-analytics.com/analytics .js',response.body&#xA;  
&#xA;&#xA;

但是,如果我用 assert_select 编写测试,它会失败:

&#xA;&#xA;
  assert_select“script [src ='https://www.google-analytics.com/analytics.js']”&#xA;  
&#xA;&#xA;

错误消息为:

&#xA;&#xA;
 失败:&#xA; AnalyticsTest#test_analytics_load_for_correct_users [ /用户/公里/文档/代码/推荐/测试/ INTEGRAT ion / analytics_test.rb:17]:&#xA;预计至少有1个元素匹配“script [src ='https://www.google-analytics.com/analytics.js']”,找到0 ..&# xA;预期0为&gt; = 1.&#xA;  
&#xA;&#xA;

我无法弄清楚我的 assert_select出了什么问题语法,任何想法?

&#xA;

0 个答案:

没有答案