My Unit Tests are using outdated Model Data

Hello, I’m new to Rails 3 and its unit testing capabilities.

I’ve created a simple unit test just to see if I could get it to run

class CaseTest < ActiveSupport::TestCase

Replace this with your real tests.

test “the truth” do
assert_equal 2,2

But when I run that test with: ruby -I test test/unit/case_test.rb, it
appears to be calling that unit test but is getting a Postgres
insertion error on a model that I’ve changed awhile ago (I removed the
column ‘title’ awhile ago and migrated which has been working fine for
me in my development environment):

1.) Error:
ActiveRecord::StatementInvalid: PGError: ERROR: column “title” of
relation “questions” does not exist
LINE 1: INSERT INTO “questions” (“title”, “body”, “created_at”,

I have two questions.

First, why is it even attempting to insert a new question when I’m
just trying to test if 2 is the same as 2?
Second, given that it is trying to insert a question for some reason,
why is it using outdated model info?

Thanks for any help you can give.

On 29 Mar 2011, at 19:06, LennonR [email protected] wrote:

relation “questions” does not exist
why is it using outdated model info?

Thanks for any help you can give.

Do you have a fixtures file that is being loaded automatically?


Ah, yes, that’s the problem. I assumed that all the generated
fixtures would be empty but I see now that Rails created some test
data. And this data was from when I originally generated my models
(since changed).

And I see now that, according to my Rails Unit Testing Guide: “Rails
by default automatically loads all fixtures from the test/fixtures
folder for your unit and functional test”

So I see it was trying to populate the db with the old table.

On Mar 29, 2:34pm, Frederick C. [email protected]

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs