cucumber — в первую очередь для модульного / интеграционного тестирования без UI.
geb заточен под тестирование на уровне UI, то есть либо функционального (приемочного) тестирования полного среза приложения, либо UI-слоя с заглушками для остальных слоев.
В посте я нигде не отметил, но видимо стоит:
Spock предназначена для проведения тестирования в стиле BDD, а Geb позволяет проводить автоматизацию работы с браузером на основе Selenium/WebDriver.
Никто не мешает их использовать отдельно.
Возможно, у вас есть на то причины.:)
Но, как мне кажется, ради такого простого и мощного DSL можно и не обращать на то, что где-то внутри Java.
У меня таких причин нет — пишу в основном на Java, иногда Groovy.
если «написал и забыл» то — скорей всего Y < X
если проект развивается, и тем более заказчик меняет задачи каждые 2 недели (по agile (да и по жизни это сплошь и рядом)) — Y > (X*10)
Только надо учитывать, что определение есть или нет смысла автоматизировать (не важно что) — процесс очень субъективный, по крайней мере пока нет инструментов автоматизации с «интуитивно понятным интерфейсом» и, что немаловажно, «интуитивно понятным» процессом установки/администрирования. Там где для одного человека достаточно, например, того, что есть url, по которому можно скачать jar-файл, для другого надо писать многостраничный мануал.
1. Не засекал, но я думаю размеры классов говорят, что это не заняло много времени.
2. Зависит от сложности теста. Но вам самому приятно руками раз за разом выполнять тест?
3. Зависит от проекта, от практик, внедрённых в процесс разработки. Но если речь о функциональном тестировании, то скорее всего этот тест будет повторяться за время существования проекта несколько десятков, а может и сотен раз.
Естественно, я первоначально потратил время на изучение Geb и Spock. Естественно, возникали вопросы и проходилось усиленно гуглить, изучать обсуждения в mailing list'ах.
Функциональное тестирование веб-приложений без боли