I just started enabling @javascript on some cucumber scenarios and I am having some lack of understanding as to what is going on with data which should be seeded in the db: In env.rb I have: AfterConfiguration do |config| Factory.create(:sysadmin_role) Factory.create(:practice_admin_role) Factory.create(:practice_user_role) end So that I have necessary roles to create users. When a scenario with @javascript runs, I get the following error, which relates to the fact that the role that is being sought does not exist: -10-07 20:22:29] ERROR RuntimeError: Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id /Users/DK/Documents/ror/projects/wavelineup3/app/controllers/practices_controller.rb:38:in `create'' And when I check on the db, my factories are not there, i.e. Role.all = []. I have tried everything including creating the data directly in the associated step itself and to no avail. Any advice? I am going to be doing a lot of ajax/js testing, should I ditch Capybara in favor of Selenium? Thanks, David -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Marnen Laibow-Koser
2010-Oct-08 02:37 UTC
Re: Cucumber @javascript scenarios loose seeded data
David Kahn wrote:> I just started enabling @javascript on some cucumber scenarios and I am > having some lack of understanding as to what is going on with data which > should be seeded in the db:Nothing should ever be seeded in the DB in testing. You want a clean slate. Set up only the records you need for each scenario. Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org Sent from my iPhone -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Thu, Oct 7, 2010 at 9:37 PM, Marnen Laibow-Koser <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org>wrote: Nothing should ever be seeded in the DB in testing. You want a clean slate. Set up only the records you need for each scenario. Right - maybe I am missing something, how do you add records before a scenario? Is there a before(:each) like in rspec? Also, I just changed my env.rb to culerity which I overlooked: Capybara.javascript_driver = :culerity #default driver when you using @javascript tag I now see this error on a lot of tests - have you seen this? I did not exhaustively google but does not seem to be any clear and easy resolution: Broken pipe (Errno::EPIPE) Thanks, David On Thu, Oct 7, 2010 at 9:37 PM, Marnen Laibow-Koser <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org>wrote:> David Kahn wrote: > > I just started enabling @javascript on some cucumber scenarios and I am > > having some lack of understanding as to what is going on with data which > > should be seeded in the db: > > Nothing should ever be seeded in the DB in testing. You want a clean > slate. Set up only the records you need for each scenario. > > Best, > -- > Marnen Laibow-Koser > http://www.marnen.org > marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org > > Sent from my iPhone > -- > Posted via http://www.ruby-forum.com/. > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> > . > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
radhames brito
2010-Oct-08 03:58 UTC
Re: Re: Cucumber @javascript scenarios loose seeded data
> > Nothing should ever be seeded in the DB in testing. You want a clean >slate. Set up only the records you need for each scenario.>THIS if you need your scenario to have some context use background: like this Background: Given a thug exist with name: "juan" And a car exist with owner: "jonny" Scenario: can steal car Given "juan" is near the car When "juan" opens it Then I should not see the police Scenario: get busted Given "juan" stole the car When "jonny" calls the police Then I should see "juan" get arrested this way jaun and jonny exist for both scenarios and the their are created for each feature. also i like using selenium-webdriver to test javascript if i see something wrong in the first pass. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Marnen Laibow-Koser
2010-Oct-08 12:26 UTC
Re: Re: Cucumber @javascript scenarios loose seeded data
David Kahn wrote:> On Thu, Oct 7, 2010 at 9:37 PM, Marnen Laibow-Koser > <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org>wrote: > > Nothing should ever be seeded in the DB in testing. You want a clean > slate. Set up only the records you need for each scenario. > > Right - maybe I am missing something, how do you add records before a > scenario? Is there a before(:each) like in rspec?Check out scenario backgrounds. Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org Sent from my iPhone -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
David Kahn
2010-Oct-08 17:56 UTC
Re: Re: Re: Cucumber @javascript scenarios loose seeded data
Thanks Marnen and Radhames for the help... got things working. Radhames, took your lead and tried the selenium driver instead of culerity. I think there is some issue with culerity on Rails 3/1.9.2 (a broken pipe error occurs regularly) but w selenium things went smooth. You probably already know this but for completeness of this post, I actually found while looking at Scenario Backgrounds the cucumber hooks for running something before each scenario in the whole suite (below)... in this case the user roles always have to be there so it makes more sense to put this there than inside each feature. env.rb Before do Factory.create(:sysadmin_role) Factory.create(:practice_admin_role) Factory.create(:practice_user_role) end On Fri, Oct 8, 2010 at 7:26 AM, Marnen Laibow-Koser <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org>wrote:> David Kahn wrote: > > On Thu, Oct 7, 2010 at 9:37 PM, Marnen Laibow-Koser > > <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org>wrote: > > > > Nothing should ever be seeded in the DB in testing. You want a clean > > slate. Set up only the records you need for each scenario. > > > > Right - maybe I am missing something, how do you add records before a > > scenario? Is there a before(:each) like in rspec? > > Check out scenario backgrounds. > > Best, > -- > Marnen Laibow-Koser > http://www.marnen.org > marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org > > Sent from my iPhone > -- > Posted via http://www.ruby-forum.com/. > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> > . > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Marnen Laibow-Koser
2010-Oct-08 19:24 UTC
Re: Re: Re: Cucumber @javascript scenarios loose seeded data
David Kahn wrote:> Thanks Marnen and Radhames for the help... got things working. Radhames, > took your lead and tried the selenium driver instead of culerity. > > I think there is some issue with culerity on Rails 3/1.9.2 (a broken > pipe > error occurs regularly) but w selenium things went smooth. You probably > already know this but for completeness of this post, I actually found > while > looking at Scenario Backgrounds the cucumber hooks for running something > before each scenario in the whole suite (below)... in this case the user > roles always have to be there so it makes more sense to put this there > than > inside each feature.No, no, no, it really doesn''t. Do you actually touch all three of those roles for every single Cucumber scenario? (I''ll bet you don''t.) If you don''t, then you''re just making extra records and confusing what you''re testing. The Before block is not the place to create records.> > env.rb > > Before do > Factory.create(:sysadmin_role) > Factory.create(:practice_admin_role) > Factory.create(:practice_user_role) > endBest, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
David Kahn
2010-Oct-08 20:34 UTC
Re: Re: Re: Re: Cucumber @javascript scenarios loose seeded data
No, no, no, it really doesn''t. Do you actually touch all three of those roles for every single Cucumber scenario? (I''ll bet you don''t.) If you don''t, then you''re just making extra records and confusing what you''re testing. The Before block is not the place to create records. Its a grey area, as user roles a a presupposition of the system, and probably 90%+ of all tests would fail without them --- and they are far from my mind when writing scenarios. I could put them instead in the step which creates any user, but that is less pretty as I might create several users throughout a single scenario. They are the only seed data that would go into the production database. Originally I added them in env.rb using the following which would add them once: AfterConfiguration do |config| Factory.create(:sysadmin_role) Factory.create(:practice_admin_role) Factory.create(:practice_user_role) end But with the @javascript tests they were not loading (or were getting deleted). On Fri, Oct 8, 2010 at 2:24 PM, Marnen Laibow-Koser <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org>wrote:> David Kahn wrote: > > Thanks Marnen and Radhames for the help... got things working. Radhames, > > took your lead and tried the selenium driver instead of culerity. > > > > I think there is some issue with culerity on Rails 3/1.9.2 (a broken > > pipe > > error occurs regularly) but w selenium things went smooth. You probably > > already know this but for completeness of this post, I actually found > > while > > looking at Scenario Backgrounds the cucumber hooks for running something > > before each scenario in the whole suite (below)... in this case the user > > roles always have to be there so it makes more sense to put this there > > than > > inside each feature. > > No, no, no, it really doesn''t. Do you actually touch all three of those > roles for every single Cucumber scenario? (I''ll bet you don''t.) If you > don''t, then you''re just making extra records and confusing what you''re > testing. The Before block is not the place to create records. > > > > > > env.rb > > > > Before do > > Factory.create(:sysadmin_role) > > Factory.create(:practice_admin_role) > > Factory.create(:practice_user_role) > > end > > Best, > -- > Marnen Laibow-Koser > http://www.marnen.org > marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org > -- > Posted via http://www.ruby-forum.com/. > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> > . > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Marnen Laibow-Koser
2010-Oct-08 20:39 UTC
Re: Re: Re: Re: Cucumber @javascript scenarios loose seeded data
David Kahn wrote: [The following paragraph was me. Please quote properly.]> No, no, no, it really doesn''t. Do you actually touch all three of those > roles for every single Cucumber scenario? (I''ll bet you don''t.) If you > don''t, then you''re just making extra records and confusing what you''re > testing. The Before block is not the place to create records. >[And back to you...]> Its a grey area, as user roles a a presupposition of the system, and > probably 90%+ of all tests would fail without them --- and they are far > from > my mind when writing scenarios.They should not be far from your mind! You should set them up in every test and scenario for which you need them, so that you know exactly which features depend on them.> I could put them instead in the step > which > creates any user, but that is less pretty as I might create several > users > throughout a single scenario.That''s OK. Create the users with appropriate roles as you need them (Pickle can really help here).> They are the only seed data that would go > into > the production database.Fine, then seed the production database. Never seed the test database.> > Originally I added them in env.rb using the following which would add > them > once: > AfterConfiguration do |config| > Factory.create(:sysadmin_role) > Factory.create(:practice_admin_role) > Factory.create(:practice_user_role) > endI know. That''s bad practice, as I''ve been explaining.> > But with the @javascript tests they were not loading (or were getting > deleted).So take the time now to drop the bad practice and do it right! Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
David Kahn
2010-Oct-08 20:57 UTC
Re: Re: Re: Re: Re: Cucumber @javascript scenarios loose seeded data
They should not be far from your mind! You should set them up in every test and scenario for which you need them, so that you know exactly which features depend on them. So take the time now to drop the bad practice and do it right! I see the point and trying to swallow it. That''s going to make me think a bit differently but I can see the benefit. Although, this also makes me think that doing associations or the like within factories according to your logic would also be bad practice, right? I mean, that is also data which is implied. On Fri, Oct 8, 2010 at 3:39 PM, Marnen Laibow-Koser <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org>wrote:> David Kahn wrote: > [The following paragraph was me. Please quote properly.] > > No, no, no, it really doesn''t. Do you actually touch all three of those > > roles for every single Cucumber scenario? (I''ll bet you don''t.) If you > > don''t, then you''re just making extra records and confusing what you''re > > testing. The Before block is not the place to create records. > > > [And back to you...] > > > Its a grey area, as user roles a a presupposition of the system, and > > probably 90%+ of all tests would fail without them --- and they are far > > from > > my mind when writing scenarios. > > They should not be far from your mind! You should set them up in every > test and scenario for which you need them, so that you know exactly > which features depend on them. > > > I could put them instead in the step > > which > > creates any user, but that is less pretty as I might create several > > users > > throughout a single scenario. > > That''s OK. Create the users with appropriate roles as you need them > (Pickle can really help here). > > > They are the only seed data that would go > > into > > the production database. > > Fine, then seed the production database. Never seed the test database. > > > > > Originally I added them in env.rb using the following which would add > > them > > once: > > AfterConfiguration do |config| > > Factory.create(:sysadmin_role) > > Factory.create(:practice_admin_role) > > Factory.create(:practice_user_role) > > end > > I know. That''s bad practice, as I''ve been explaining. > > > > > But with the @javascript tests they were not loading (or were getting > > deleted). > > So take the time now to drop the bad practice and do it right! > > Best, > -- > Marnen Laibow-Koser > http://www.marnen.org > marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org > -- > Posted via http://www.ruby-forum.com/. > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> > . > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Marnen Laibow-Koser
2010-Oct-08 21:07 UTC
Re: Re: Re: Re: Re: Cucumber @javascript scenarios loose seeded data
David Kahn wrote:> They should not be far from your mind! You should set them up in every > test and scenario for which you need them, so that you know exactly > which features depend on them. > > So take the time now to drop the bad practice and do it right![Still not quoting properly. That was me.]> > I see the point and trying to swallow it. That''s going to make me think > a > bit differently but I can see the benefit. Although, this also makes me > think that doing associations or the like within factories according to > your > logic would also be bad practice, right?No. Part of the reason we use factories is so we can produce, on the fly, a usable record with all associations and validations satisfied.> I mean, that is also data which > is > implied.Huh? You mean in the sense that you didn''t explicitly create the associated records? That''s OK, because you''re still creating them *for the particular test*. See, your test DB should start out every scenario or test completely empty, and only create the records needed for that particular test. If (say) Factory :event also creates a User record for the Event to belong to, that''s fine -- an Event (in this example) can''t exist without an owning User, so we need the User in order to test the Event. We are creating all necessary records, but only the necessary records. Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
David Kahn
2010-Oct-08 21:12 UTC
Re: Re: Re: Re: Re: Re: Cucumber @javascript scenarios loose seeded data
On Fri, Oct 8, 2010 at 4:07 PM, Marnen Laibow-Koser <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org>wrote: See, your test DB should start out every scenario or test completely empty, and only create the records needed for that particular test. If (say) Factory :event also creates a User record for the Event to belong to, that''s fine -- an Event (in this example) can''t exist without an owning User, so we need the User in order to test the Event. We are creating all necessary records, but only the necessary records. Right, I fully agree with this. So either I should create the roles in this case before each test or let the factories create, either way there is a clean slate. On Fri, Oct 8, 2010 at 4:07 PM, Marnen Laibow-Koser <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org>wrote:> David Kahn wrote: > > They should not be far from your mind! You should set them up in every > > test and scenario for which you need them, so that you know exactly > > which features depend on them. > > > > So take the time now to drop the bad practice and do it right! > [Still not quoting properly. That was me.] > > > > > I see the point and trying to swallow it. That''s going to make me think > > a > > bit differently but I can see the benefit. Although, this also makes me > > think that doing associations or the like within factories according to > > your > > logic would also be bad practice, right? > > No. Part of the reason we use factories is so we can produce, on the > fly, a usable record with all associations and validations satisfied. > > > I mean, that is also data which > > is > > implied. > > Huh? You mean in the sense that you didn''t explicitly create the > associated records? That''s OK, because you''re still creating them *for > the particular test*. > > See, your test DB should start out every scenario or test completely > empty, and only create the records needed for that particular test. If > (say) Factory :event also creates a User record for the Event to belong > to, that''s fine -- an Event (in this example) can''t exist without an > owning User, so we need the User in order to test the Event. We are > creating all necessary records, but only the necessary records. > > Best, > -- > Marnen Laibow-Koser > http://www.marnen.org > marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org > -- > Posted via http://www.ruby-forum.com/. > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> > . > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Marnen Laibow-Koser
2010-Oct-08 21:21 UTC
Re: Re: Re: Re: Re: Re: Cucumber @javascript scenarios loose seeded data
David Kahn wrote:> On Fri, Oct 8, 2010 at 4:07 PM, Marnen Laibow-Koser > <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org>wrote: > See, your test DB should start out every scenario or test completely > empty, and only create the records needed for that particular test. If > (say) Factory :event also creates a User record for the Event to belong > to, that''s fine -- an Event (in this example) can''t exist without an > owning User, so we need the User in order to test the Event. We are > creating all necessary records, but only the necessary records.For the third time: fix your quoting!> > Right, I fully agree with this. So either I should create the roles in > this > case before each test or let the factories create, either way there is a > clean slate.But your Before block is not creating *only* the necessary records for each test. That''s why you shouldn''t be using it. Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.