我在我的rails应用中使用了一个gem geocomplete_rails
(这是一个地方自动完成插件)。这个宝石需要谷歌地图Api。因此,每当我在使用此地理填充的网页上运行测试时,我都会收到一条错误消息(使用page.driver.console_messages
):
{:line_number=>54278, :message=>"ReferenceError: Can't find variable: google", :source=>"http://127.0.0.1:51330/assets/application-a820c847c6467fc2276afc746aeae8edab24cca81edfff6ea38bf8a38beb3151.js"}
我加载google地图api js的方式在我的application.html.erb
中<%= javascript_include_tag 'https://maps.googleapis.com/maps/api/js?key=<MY_OWN_API_KEY>&libraries=places' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
所以我的问题是我有办法检查我的测试环境中是否已正确加载Google Maps Api js?这样我就可以发现上面提到的错误消息是由于缺少google map api还是由geocomplete本身造成的。
*注意:geocomplete在开发和生产环境中完美运行。我正在使用capybara-webkit进行js测试。
答案 0 :(得分:0)
您不需要验证它是否已正确加载 - 您的测试环境中的代码中显然存在需要解决的错误。
进行全栈集成测试时,您不应该仅仅为了测试而注入任何特殊行为。它应该全部由应用程序代码处理,该代码将在dev / production中运行属性。
我猜测,对于这个特定的错误,你有javascript代码试图在加载之前访问google
对象。我猜这个错误只是在初始页面加载时引起的,因为你使用了Tubolinks。