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: "mic...@disney.com" 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('mic...@disney.com') } 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 rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users