I noticed that in my unit test case, i can define a setup method which gets called before all my unit tests. This does not work however for functional test cases. Is this intended, or do I have something screwed up? I''m running Rails 2.0.2 on WinXP (same thing occurring in Ubuntu 7.10) --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On 10 Jan 2008, at 14:40, Reacher wrote:> > I noticed that in my unit test case, i can define a setup method which > gets called before all my unit tests. This does not work however for > functional test cases. Is this intended, or do I have something > screwed up? I''m running Rails 2.0.2 on WinXP (same thing occurring in > Ubuntu 7.10)This should work. In rails 2 the boilerplate setup method is gone from functional tests (since every one had the same 3 lines in them). There was an issue where if you defined your own setup method you had to call super, but I can''t remember if that was fixed in 2.0.2/2.0.1 or if the fix is still only on edge Fred> > >--~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hmm my setup method isn''t getting called. It is in my unit test, but that class is subclassed from ActiveSupport::TestCase, not ActionController::TestCase. Wonder why it isn''t working for me.... On Jan 10, 9:49 am, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On 10 Jan 2008, at 14:40, Reacher wrote: > > > > > I noticed that in my unit test case, i can define a setup method which > > gets called before all my unit tests. This does not work however for > > functional test cases. Is this intended, or do I have something > > screwed up? I''m running Rails 2.0.2 on WinXP (same thing occurring in > > Ubuntu 7.10) > > This should work. In rails 2 the boilerplate setup method is gone from > functional tests (since every one had the same 3 lines in them). There > was an issue where if you defined your own setup method you had to > call super, but I can''t remember if that was fixed in 2.0.2/2.0.1 or > if the fix is still only on edge > > Fred > >--~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I guess I''ll peek in the rails library code to see if I can get to the bottom of this. On Jan 10, 9:54 am, Reacher <brandon.g.jo...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Hmm my setup method isn''t getting called. It is in my unit test, but > that class is subclassed from ActiveSupport::TestCase, not > ActionController::TestCase. Wonder why it isn''t working for me.... > > On Jan 10, 9:49 am, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > wrote: > > > On 10 Jan 2008, at 14:40, Reacher wrote: > > > > I noticed that in my unit test case, i can define a setup method which > > > gets called before all my unit tests. This does not work however for > > > functional test cases. Is this intended, or do I have something > > > screwed up? I''m running Rails 2.0.2 on WinXP (same thing occurring in > > > Ubuntu 7.10) > > > This should work. In rails 2 the boilerplate setup method is gone from > > functional tests (since every one had the same 3 lines in them). There > > was an issue where if you defined your own setup method you had to > > call super, but I can''t remember if that was fixed in 2.0.2/2.0.1 or > > if the fix is still only on edge > > > Fred--~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On 11/01/2008, Reacher <brandon.g.jones-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I guess I''ll peek in the rails library code to see if I can get to the > bottom of this.I think this is because of the ActiveRecord::Fixtures class defining method_added. If you look at the fixtures.rb file in activerecord you''ll find that it does this: def self.method_added(method) return if @__disable_method_added__ @__disable_method_added__ = true case method.to_s when ''setup'' unless method_defined?(:setup_without_fixtures) alias_method :setup_without_fixtures, :setup define_method(:full_setup) do setup_with_fixtures setup_without_fixtures end end alias_method :setup, :full_setup when ''teardown'' unless method_defined?(:teardown_without_fixtures) alias_method :teardown_without_fixtures, :teardown define_method(:full_teardown) do teardown_without_fixtures teardown_with_fixtures end end alias_method :teardown, :full_teardown end @__disable_method_added__ = false end I personally think that those calls to ''alias_method :setup, :full_setup'' and ''alias_method :teardown, :full_teardown'' should be inside the unless statements because, as it stands, whenever you get a definition of ''setup'' or ''teardown'' it will simply overwrite them. The code should, IMO, read: def self.method_added(method) return if @__disable_method_added__ @__disable_method_added__ = true case method.to_s when ''setup'' unless method_defined?(:setup_without_fixtures) alias_method :setup_without_fixtures, :setup define_method(:full_setup) do setup_with_fixtures setup_without_fixtures end alias_method :setup, :full_setup end when ''teardown'' unless method_defined?(:teardown_without_fixtures) alias_method :teardown_without_fixtures, :teardown define_method(:full_teardown) do teardown_without_fixtures teardown_with_fixtures end alias_method :teardown, :full_teardown end end @__disable_method_added__ = false end Matt --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hi Folks, I wanted to share that I was experience the same situation; the ''setup'' method in my Functional tests were not getting called when my Functional test derived from ActionController::TestCase and I was confused because I was referring to pre-Rails 2.0.2 examples that derived from Test::Unit::TestCase. I imagine other folks who are just adding testing goodness to their apps may experience the same. I followed Matt''s suggestion below and made the changes to the fixtures.rb file in /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record (as installed in OS/X 10.5.4) I also added a call to "super" in my functional test setup method and got my setup method back in my fixture test. For the benefit of anyone else who is struggling with this; calling super in your setup method sets up the @controller, @request and @response so you don''t need to. Therefore, you can use the setup to prepare variables that will be used throughout your other functional tests. - Peter DP Matthew Denner wrote:> I think this is because of the ActiveRecord::Fixtures class defining > method_added.[snip]> I personally think that those calls to ''alias_method :setup, > :full_setup'' and ''alias_method :teardown, :full_teardown'' should be > inside the unless statements because, as it stands, whenever you get a > definition of ''setup'' or ''teardown'' it will simply overwrite them. > The code should, IMO, read: > > def self.method_added(method) > return if @__disable_method_added__ > @__disable_method_added__ = true > > case method.to_s > when ''setup'' > unless method_defined?(:setup_without_fixtures) > alias_method :setup_without_fixtures, :setup > define_method(:full_setup) do > setup_with_fixtures > setup_without_fixtures > end > alias_method :setup, :full_setup > end > when ''teardown'' > unless method_defined?(:teardown_without_fixtures) > alias_method :teardown_without_fixtures, :teardown > define_method(:full_teardown) do > teardown_without_fixtures > teardown_with_fixtures > end > alias_method :teardown, :full_teardown > end > end > > @__disable_method_added__ = false > end > > Matt-- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---