Я сравнил Огурец, Огурец-JVM и JBehave. Все они предназначены для написания приемочных тестов, основанных либо на функциях (Cucumber, Cucumber-JVM), либо на рассказах.
Основные недостатки Cucumber заключаются в том, что он хрупок при использовании через плагин Cuke4Duke Maven в чистой среде Java, поскольку требует поддержки базовой инфраструктуры Ruby (gem). Это также сравнительно медленно и прямая отладка невозможна - вам нужно вместо этого подключить удаленный отладчик.
JBehave - очень зрелая, чистая Java-альтернатива Cucumber. Его вывод не так хорош, как у Cucumber, но он хорошо документирован, прост в использовании и быстр. Есть встроенная поддержка JUnit.
По состоянию на декабрь 2011 года теперь вы можете дополнительно использовать чистую Java-версию Cucumber, которая называется Cucumber-JVM. Он так же быстр и прост в использовании, как и JBehave, и имеет встроенную поддержку JUnit. К сожалению, он не имеет каких-либо симпатичных результатов на основе HTML, даже элементарных предложений JBehave, хотя это должно быть исправлено в ближайшие месяцы. Также не хватает документации. Его главное преимущество перед JBehave - поддержка функций вместо историй.