Feature "Define a feature" do
in_order_to "write acceptance tests with less code"
as_a "developer"
i_want_to "use a simple internal DSL"
Scenario "Demonstrate how coulda works" do
Given "a pending prereq" do
# Precondition code could go here
end
When "something happens" do
# Behavior to test invoked here
end
Then "expect something else" do
# Assertions on result of behavior go here
end
end
end

But it can also be easily rendered as plain text (via a rake task) to look like this:

Feature: Define a feature
In order to write acceptance tests with less code
As a developer
I want to use a simple internal DSL
Scenario: Demonstrate how coulda works
Given a pending prereq
When something happens
Then expect something else

Getting Started

Install the gem:

sudo gem install coulda

(unless you're using RVM -- which you probably should be in which case it's "gem install coulda")

Then write some user stories/features/specs/tests/acceptance tests/your-name-du-jour-for-a-descriptive-testing-artifact

Rendering stories as text

It's this easy:

RAILS_ENV=test rake coulda:print_features

And then you get this:

Feature: Define a feature
In order to write acceptance tests with less code
As a developer
I want to use a simple internal DSL
Scenario: Demonstrate how coulda works
Given a pending prereq
When something happens
Then expect something else