À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