Cucumber でテストされたアプリケーション、Rails があります。このアプリケーションには Google マップがあり、そのマップに「ピン」(マーカー) があるかどうかをテストする Cucumber-step が必要です。私の知る限り、ピンは 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 マップ API が実際にその呼び出しを可視ピンに変換するかどうかをテストすることには (本当に) 興味がありません (それは素晴らしいことですが)。今のところ、その JavaScript メソッドが呼び出されるかどうかをテストするだけで十分です。
page
特定の JavaScript が含まれているかどうかをテストするにはどうすればよいですか? 上記のステップのコードは、実際のコンテンツのみをテストし、タグThen
内のコンテンツを省略しています。<script>