Hi, I am new in ROR. I have 4 fixtures in my '../test/fixtures' folder: user.yml, aggregationfeedmaps.yml, aggregations.yml, and feeds.yml. I have few test files in unit tests folder like user_test.rb, feeds_test.rb, aggregation_test.rb and such. When I wrote test for model 'user' using fixture user.yml it worked fine. But when I tried to run test for my other models using fixtures aggregationfeedmaps.yml, aggregations.yml, and feeds.yml it shows this error: FixtureClassNotFound: No class attached to find my test file 'feeds_test.rb': require File.dirname(__FILE__) + '/../test_helper' #class FeedsTest < ActiveSupport::TestCase class FeedsTest < Test::Unit::TestCase # Replace this with your real tests. fixtures :feeds def test_truth assert true end def test_updatefeed feed1 = feeds(:feed_1) # Feeds.updatefeed(feed1.id) # assert_equal(Time.now, feed1.lastupdate) end end my fixture file: 'feeds.yml' # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html feed_1: id: 1 sourcelink: http://sports.yahoo.com/ncaaf/teams/aad/ical.ics feeddata: testdata lastupdate: 2009-02-17 22:42:25 used: 1 feed_2: id: 2 sourcelink: http://sports.yahoo.com/ncaaf/teams/aae/ical.ics feeddata: testdata lastupdate: 2009-02-17 22:42:25 used: 2 test_truth test passes but test_updatefeed shows the FixtureClassNotFound error Any help what is going on? Any help on the topic would be highly appreciated.
on 2009-04-06 06:45
on 2009-04-06 13:37
On Apr 6, 2009, at 12:45 AM, Ps_gem Sh_gem wrote: > error: > > FixtureClassNotFound: No class attached to find > > my test file 'feeds_test.rb': You're probably running into a naming issue. Models are expected to be the singular name and the tables will be plural as will the fixture files. You can see them all with the Pluralizer http://nubyonrails.com/tools/pluralize But here's a simple listing: test/fixtures/feeds.yml app/model/feed.rb class Feed < ActiveRecord::Base in a database tables named "feeds" It also expects to convert between CamelCase and under_scored so if your model is AggregationFeedMap, the file defining it should be app/ models/aggregation_feed_map.rb and the table name should be aggregation_feed_maps and the fixture found in test/fixtures/ aggregation_feed_maps.yml Does this help you figure out your issues? It all becomes quite natural after a short while, but there are still times where you'll have a model name that the Inflector doesn't get the pluralization right and you either have to adjust or define an extra rule for the word you want to use. -Rob Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com
on 2009-04-06 14:24
> It also expects to convert between CamelCase and under_scored so if > your model is AggregationFeedMap, the file defining it should be app/ > models/aggregation_feed_map.rb and the table name should be > aggregation_feed_maps and the fixture found in test/fixtures/ > aggregation_feed_maps.yml Further, this command line... script/generate model aggregation_feed_map ...should have set everything up correctly for you. Where'd these fixtures come from?
on 2009-04-13 01:31
On Apr 6, 7:23 am, Phlip <phlip2...@gmail.com> wrote: > ...should have set everything up correctly for you. Where'd these fixtures come > from? In my case I have a model named LppBase. Pluralize becomes lpp_bases. But if you singularize it back, it became lpp_basis. So, I had to add an entry in the inflections file. FYI: I debugged this by getting in to script/console and then executing: "lpp_bases".pluralize.singularize HTH
on 2009-04-13 02:00
pedz wrote: > In my case I have a model named LppBase. Pluralize becomes > lpp_bases. But if you singularize it back, it became lpp_basis. So, > I had to add an entry in the inflections file. All your basis are belong to Rails.