簡體   English   中英

測試黃瓜中javascript的內容

[英]test contents of javascript in cucumber

我有一個經過Cucumber測試的應用程序Rails。 此應用程序有一個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

該頁面的底部有一個script標記,其中填充有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>標記中的內容。

訣竅是不使用have_content ,而是使用更通用的選擇器,例如have_xpath

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM