Мы используем RSpec и Cucumber в наших приложениях Rails с хорошими результатами. Webrat отлично подходит для взаимодействий без AJAX, но мы готовимся вернуться к написанию тестов для нашего Javascript.
Webrat имеет встроенную поддержку Selenium, и мы использовали Selenium раньше, но мне любопытно, имел ли кто-нибудь хорошие результаты при использовании Watir с Cucumber и каковы плюсы и минусы Watir по сравнению с Selenium.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я пробовал Ватир, но не с огурцом. Это было для Java-приложения. Проблема, с которой мы столкнулись, заключалась в попытке определить, что страница загружена. Нам пришлось немного почистить форумы, прежде чем найти решение. В остальном все было нормально.
Я бы сказал, что Ватир был намного хитрее, но менее полезен. В основном это система автоматизации IE с довольно нестабильной поддержкой Firefox. (Признаюсь, что некоторое время не проверял FireWatir, возможно, он улучшился.)
На Watir есть экспериментальная поддержка Selenium-RC. Это определенно было бы лучшим из обоих миров.
Вы можете попробовать WebDriver. В будущем это будет стать частью Selenium. Работает с JRuby.
Он отличается от Selenium, Sahi или Watir тем, что он изначально контролирует браузер, не использует JavaScript, и на него не влияют многие проблемы, которые есть в других решениях.
Как основатель OpenQA и Selenium RC, я явно склоняюсь к Selenium как к хорошему варианту. Недавно мы только что выпустили версию 1.0 beta 2 и очень близки к финальной версии 1.0.
Однако вы не могли ошибиться и с Watir / FireWatir. Комментарий Адама о том, что WebDriver объединится в Selenium 2.0, верен, но он неверен, подразумевая, что Watir не использует собственные хуки. Если бы Watir был просто клоном Selenium и также использовал JavaScript-инъекцию, я бы сказал, что на него не стоит смотреть.
Но поскольку у него есть собственные хуки, он может делать некоторые вещи, которых Selenium в настоящее время не может. Хотя у него меньше поддерживаемых браузеров, он немного глубже в основном браузере, который он поддерживает (IE), и позволяет вам управлять вещами за пределами страницы / холста.
Подводя итог: все в порядке, Selenium великолепен, и если вы немного потянете с Selenium, вы скоро получите лучшее из обоих миров с WebDriver / Selenium 2.0.
У меня хорошие результаты при использовании Cucumber с Celerity через JRuby.
Celerity - это безголовый браузер, который обертывает HtmlUnit с помощью Watir-совместимого API и поддерживает тестирование JavaScript и AJAX.
Отсутствие головы делает Celerity более быстрой и легкой для интеграции в цикл сборки с непрерывной интеграцией.
Поскольку Celerity совместим с API с Watir, вы можете довольно легко переключаться между Watir и Celerity. Есть некоторые предостережения, но это того стоило.
Watir 2.0 также будет использовать WebDriver.
Лучшее решение, которое я нашел, это Env-Js http://github.com/smparkes/env-js Это похоже на webrat, но с поддержкой JS
Как это похоже на вебратку? они кажутся несвязанными.
Если вы хотите использовать Watir on Rails 3.
Вы можете использовать гем 'watir-webdriver-rails' (я создатель).
выглядит довольно мило. Я всегда сталкивался с некоторыми проблемами при тестировании интеграции rspec с webrat или capybara. Я проверю гем watir-webdriver-rails.
Спасибо, я использую этот драгоценный камень во всех своих проектах. Я надеюсь, что это принесет пользу и вам.
Не упускайте из виду что-то вроде QUnit или Jasmine для модульного тестирования вашего javascript. Если ничего другого, это сократит количество тестов с полным стеком, которые вы должны написать в огурце / селене / капибаре / чем угодно
Вы также можете использовать его с капибарой, что позволяет легко переключаться между быстротой и селеном. Хорошая статья об этом здесь allenwei.cn/…