Rspec – Ficando “por” com especificações de recursos rspec

Às vezes temos muitos responsáveis ​​por uma ação que vai ser testada, olha isso

it "allows the user to manage her account" do
#Login user
visit
"/login"
fill_in
"Username", :with => "jdoe"
fill_in
"Password", :with => "secret"
click_button
"Log in"
expect
(page).to have_selector(".username", :text => "jdoe")

#Account management
click_link
"Account"
expect
(page).to have_content("User Profile")
end

podemos ser mais semânticos usando um método by, emspec_helper.rb

def by(message)
if block_given?
yield
else
pending message

end
end

alias and_by by

e eles reescrevem o teste

it "allows the user to manage her account" do
by "logging in the user" do
visit
"/login"
fill_in
"Username", :with => "jdoe"
fill_in
"Password", :with => "secret"
click_button
"Log in"
expect
(page).to have_selector(".username", :text => "jdoe")
end

and_by
"managing the account" do
click_link
"Account"
expect
(page).to have_content("User Profile")
end
end

Publicado originalmente pela Pivotal Labs

http://pivotallabs.com/getting-by-with-rspec-feature-specs/