I prefer to use Rspec and Cucumber together. I also prefer Capybara over Webrat.
RSpec is great for integration and rail structure. This is technically a behavior test, but in practice it experiences a sense of unit testing. It also allows you to group and define “specifications” or rspec tests in any structure you like, with “describe” blocks.
Cucumber is a higher level. This is what you translate into your user stories. For example, you may decide that your users should be able to change their password, so you will write something like this:
Scenario: Change password
Given I am logged in
And I am on the change password page
When I fill in "p4ssw0rd" for "old_password"
And I fill in "newp4ssw0rd$$" for "new_password"
Then my password should be "newp4ssw0rd$$"
QA, , . , , , .