У меня есть приложение, Rails, проверено с помощью огурца. Это приложение имеет карту Google, и я хочу, чтобы шаг огурца проверял, имеет ли эта карта какие-то «штифты» (маркеры). Насколько я знаю, контакты не могут быть найдены в DOM, поэтому я решил просто проверить, вызывает ли страница map.addMarker()
с определенными параметрами.тестовое содержимое javascript в огурце
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 и API карт Google превращает этот вызов в видимый вывод (хотя это было бы аккуратно); теперь просто проверяем, будет ли вызван метод JavaScript.
Как я могу проверить, содержит ли page
JavaScript? Код в шаге Then
выше, только тесты для фактического содержимого и опускает содержимое в теге <script>
.
Это не работает для меня нужно добавить видимую ложное 'page.should have_xpath«// скрипт [содержит (., 'blah')] ", visible: false' –