Как все уже отметили, у Огурека и Стоя есть довольно разные цели. Вы можете думать о Cucumber как о средстве тестирования «вид с 10 000 футов» - вы определяете широкую функцию или конкретное взаимодействие с пользователем и убедитесь, что все работает вместе. Следует для модульного тестирования - вы выбираете конкретную модель и тщательно тестируете все придирчивые функциональные возможности для этой отдельной детали.
Как правило, вы хотели бы использовать эти виды фреймворков вместе. Например, большинство ваших широких высокоуровневых тестов могут быть написаны на Cucumber, но когда в вашей системе есть особенно сложный или непрозрачный фрагмент кода, вы можете выполнить детализацию с помощью Ifa или RSpec для проверки подробностей.