I'm new to RSpec, Rails, and Ruby. I'm following the Rails Tutorial. I was
going over some RSpec code and go wanted some clarification:
describe "User pages" do
subject { page }
describe "sign up" do
describe "with valid information" do
before do
fill_in "Name", with: "Mickey Mouse"
fill_in "Email", with: "[email protected]"
fill_in "Password", with: "m1ck3y"
fill_in "Confirmation", with: "m1ck3y"
end
it "should create a user" do # block 1
expect { click_button "Sign up" }.to change(User, :count).by(1)
end
describe "after saving the user" do #block 2
before { click_button 'Sign up' }
let(:user) { User.find_by_email('[email protected]') }
it { should have_selector('title', text: user.name) }
it { should have_link('Sign out') }
end
end
Notice the "it 'should create a user'" block. Why doesn't the user we
create in that block carry over to the next block? ("after saving the
user")? Why is it necessary to write
before { click_button 'Sign up' } in order to test for the user? Shouldn't
the user already exist as it was created in block 2?
I'm looking to understand the flow of events in RSpec.
Thanks!
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users