[英]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.