测试黄瓜中javascript的内容

时间:2013-03-06 13:29:09

标签: javascript google-maps cucumber

我有一个应用程序,Rails,用Cucumber测试。这个应用程序有一个Google Map,我想要一个Cucumber步骤来测试该地图是否有一些“Pins”(标记)。 据我所知,在DOM中找不到引脚,所以我想简单地测试一下页面是否使用某些参数调用map.addMarker()

Then /^I should see the top 50 campings on the map$/ do
  Camping.geocoded.top(50).each do |camping|
    page.should have_content /map\.addMarker\(#{camping.latitude}, #{camping.longitude}, "#{camping.name}"\)/
  end
end

该页面底部有一个脚本标记,内容为content_for,源代码为:

<script>
  $(document).ready(map.addMarker(51.7780246, 5.97571, "Bij Ons"))
</script>
</body>

map.addMarker是一些自定义JavaScript,可为地图添加标记。

我不是(真的)有兴趣测试我的自定义JavaScript和Google maps API是否实际上将该调用转换为可见的引脚(尽管这很简洁);现在简单地测试是否会调用JavaScript方法。

如何测试page是否包含某些JavaScript?上述Then步骤中的代码仅测试实际内容,并省略<script>代码中的内容。

1 个答案:

答案 0 :(得分:0)

诀窍是不使用have_content,而是使用更通用的选择器,例如have_xpath

page.should have_xpath "//script[contains(.,'map.addMarker(#{camping.latitude}, #{camping.longitude}, \"#{camping.name}\")')]"