Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Ticket #7193: add-missing-fixture-warning-to-method-missing.diff

File add-missing-fixture-warning-to-method-missing.diff, 1.2 kB (added by eventualbuddha, 2 years ago)
  • lib/active_record/fixtures.rb

    old new  
    608608        def load_instances? 
    609609          use_instantiated_fixtures != :no_instances 
    610610        end 
     611         
     612        def method_missing(method, *args, &block) 
     613          begin 
     614            super 
     615          rescue NoMethodError 
     616            raise NoMethodError, "#{$!.message} -- are you missing a call to `fixtures :#{method}'?" 
     617          end 
     618        end 
    611619    end 
    612620 
    613621  end 
  • test/fixtures_test.rb

    old new  
    3737    assert_kind_of(Array, fixtures_array) 
    3838    fixtures_array.each { |fixtures| assert_kind_of(Fixtures, fixtures) } 
    3939  end 
     40   
     41  def test_method_missing_warns_about_possible_missing_fixture_table 
     42    exception = assert_raise(NoMethodError) { foos(:smith) } 
     43    assert_match(/missing a call to `fixtures :foos'/, exception.message) 
     44  end 
    4045 
    4146  def test_attributes 
    4247    topics = create_fixtures("topics")