# Problems with testing/Wrong table columns

**URL:** <https://www.ruby-forum.com/t/problems-with-testing-wrong-table-columns/168355>\
**Category:** Rails\
**Created:** [May 19, 2009, 10:24pm UTC](https://www.ruby-forum.com/t/problems-with-testing-wrong-table-columns/168355 "2009-05-19T22:24:29Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![krani](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/958977/32.png) [@krani](https://www.ruby-forum.com/u/krani)\
**Post date:** [May 19, 2009, 10:24pm UTC](https://www.ruby-forum.com/t/problems-with-testing-wrong-table-columns/168355/1 "2009-05-19T22:24:29Z")

</div>

Hello,

I’m new in rails developing and I’m just writing my first application.  
I already created some controllers and models and it works.  
But now I want to write some tests for my application, but I got  
problems.

I wrote one unit test for one model:

test “test\_should\_create\_a\_component” do  
assert Component.create(:project\_id =\> 1, :category\_id =\> 1, :text  
=\> ‘Test’)  
end

When I run “rake test” I get this message:

D:/Programme/InstantRails-2.0/ruby/bin/ruby.exe -I"lib;test" “D:/  
Programme/InstantRails-2.0/ruby/lib/rubygems1.8/gems/rake-0.8.7/lib/  
rake/rake\_test\_loader.rb” “test/unit/component\_test.rb”  
Loaded suite D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/  
rake-0.8.  
7/lib/rake/rake\_test\_loader  
Started  
E  
Finished in 0.453 seconds.

1. Error:  
test\_test\_should\_create\_a\_component(ComponentTest):  
ActiveRecord::StatementInvalid: Mysql::Error: Unknown column ‘integer’  
in ‘field list’: INSERT INTO `brands` (`integer`, `id`, `string`)  
VALUES (NULL, 996332877, NULL)

(…after that the lines of the code trace)

There is definitely no column integer or string in the model. Why does  
rails ask for this columns?  
I don’t know where to look for the problem…

To check wether it is an problem of my application or of my rails  
environment I created another demo application with only one model and  
one test and there I get another error without description, only this:

D:\Programme\InstantRails-2.0\rails\_apps\home\>rake test  
(in D:/Programme/InstantRails-2.0/rails\_apps/home)  
D:/Programme/InstantRails-2.0/ruby/bin/ruby.exe -I"lib;test" “D:/  
Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/  
rake/rake\_test\_loader.rb”  
D:/Programme/InstantRails-2.0/ruby/bin/ruby.exe -I"lib;test" “D:/  
Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/  
rake/rake\_test\_loader.rb”

Errors running test:units!

I’m confused, can you help me?  
Thanks in advance 🙂

bye  
krani

---

<div class="post-metadata">

**Author:** ![krani](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/958977/32.png) [@krani](https://www.ruby-forum.com/u/krani)\
**Post date:** [May 19, 2009, 10:36pm UTC](https://www.ruby-forum.com/t/problems-with-testing-wrong-table-columns/168355/2 "2009-05-19T22:36:46Z")

</div>

I am not sure but could this be an error in your test fixture file? It  
could be trying to load the test database from the fixture and failing  
because the syntax of your fixture yml file is wrong.

Colin

2009/5/19 krani [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![krani](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/958977/32.png) [@krani](https://www.ruby-forum.com/u/krani)\
**Post date:** [May 20, 2009, 5:40pm UTC](https://www.ruby-forum.com/t/problems-with-testing-wrong-table-columns/168355/3 "2009-05-20T17:40:48Z")

</div>

Hi,

thanks for your reply

I don’t think that there is a problem with my fixtures. I have only  
one:

one:  
project\_id:1  
category\_id:1  
name:  
text:KN Airintake Kit  
created\_at:  
updated\_at:

regards  
krani

---

<div class="post-metadata">

**Author:** ![krani](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/958977/32.png) [@krani](https://www.ruby-forum.com/u/krani)\
**Post date:** [May 20, 2009, 6:29pm UTC](https://www.ruby-forum.com/t/problems-with-testing-wrong-table-columns/168355/4 "2009-05-20T18:29:27Z")

</div>

I did not look carefully enough at the output, I see now that it has  
actually started the test and is in test\_test\_should\_create\_a\_component.  
You should be able to see from the trace where in your application it  
generated the faulty sql, though sometimes you have to examine the trace  
carefully to find the bits that are in your code and the bits that are  
in  
Rails. This might give you a clue. If you can’t work it out post the  
trace.

It would also be worth having a look at db/schema.rb just to check what  
it  
thinks the tables should look like. Post that also if necessary.

Colin

2009/5/20 krani [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![krani](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/958977/32.png) [@krani](https://www.ruby-forum.com/u/krani)\
**Post date:** [May 24, 2009, 8:20pm UTC](https://www.ruby-forum.com/t/problems-with-testing-wrong-table-columns/168355/5 "2009-05-24T20:20:04Z")

</div>

Hi

thanks for your help 🙂

The complete trace:

D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/  
activerecord-2.2.2/lib/active\_record/connection\_adapters/  
abstract\_adapter.rb:188:in `log' D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activerecord-2.2.2/lib/active_record/connection_adapters/ mysql_adapter.rb:309:in`execute’  
D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/  
activerecord-2.2.2/lib/active\_record/connection\_adapters/abstract/  
database\_statements.rb:147:in `insert_fixture' D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activerecord-2.2.2/lib/active_record/fixtures.rb:640:in`insert\_fixtures’  
D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/  
activerecord-2.2.2/lib/active\_record/fixtures.rb:577:in `each' D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activerecord-2.2.2/lib/active_record/fixtures.rb:577:in`insert\_fixtures’  
D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/  
activerecord-2.2.2/lib/active\_record/fixtures.rb:520:in  
`create_fixtures' D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activerecord-2.2.2/lib/active_record/fixtures.rb:520:in`each’  
D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/  
activerecord-2.2.2/lib/active\_record/fixtures.rb:520:in  
`create_fixtures' D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activerecord-2.2.2/lib/active_record/connection_adapters/abstract/ database_statements.rb:66:in`transaction’  
D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/  
activerecord-2.2.2/lib/active\_record/fixtures.rb:518:in  
`create_fixtures' D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activerecord-2.2.2/lib/active_record/connection_adapters/ mysql_adapter.rb:254:in`disable\_referential\_integrity’  
D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/  
activerecord-2.2.2/lib/active\_record/fixtures.rb:509:in  
`create_fixtures' D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activerecord-2.2.2/lib/active_record/base.rb:1398:in`silence’  
D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/  
activerecord-2.2.2/lib/active\_record/fixtures.rb:508:in  
`create_fixtures' D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activerecord-2.2.2/lib/active_record/fixtures.rb:964:in`load\_fixtures’  
D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/  
activerecord-2.2.2/lib/active\_record/fixtures.rb:930:in  
`setup_fixtures' D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activesupport-2.2.2/lib/active_support/callbacks.rb:178:in`send’  
D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/  
activesupport-2.2.2/lib/active\_support/callbacks.rb:178:in  
`evaluate_method' D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activesupport-2.2.2/lib/active_support/callbacks.rb:166:in`call’  
D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/  
activesupport-2.2.2/lib/active\_support/callbacks.rb:90:in `run' D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activesupport-2.2.2/lib/active_support/callbacks.rb:90:in`each’  
D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/  
activesupport-2.2.2/lib/active\_support/callbacks.rb:90:in `send' D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activesupport-2.2.2/lib/active_support/callbacks.rb:90:in`run’  
D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/  
activesupport-2.2.2/lib/active\_support/callbacks.rb:277:in  
`run_callbacks' D:/Programme/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activesupport-2.2.2/lib/active_support/testing/setup_and_teardown.rb: 58:in`run’

Unfortunately I don’t understand what rails want to tell me with this  
trace…

I don’t think that there is a problem in schema.rb. This is the  
definition for the component model:

create\_table “components”, :force =\> true do |t|  
t.integer “project\_id”  
t.integer “category\_id”  
t.string “name”  
t.text “text”  
t.datetime “created\_at”  
t.datetime “updated\_at”  
end

bye  
krani

---

<div class="post-metadata">

**Author:** ![krani](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/958977/32.png) [@krani](https://www.ruby-forum.com/u/krani)\
**Post date:** [May 24, 2009, 9:01pm UTC](https://www.ruby-forum.com/t/problems-with-testing-wrong-table-columns/168355/6 "2009-05-24T21:01:41Z")

</div>

Thank you!

For whatever reason there were faulty definitions in the fixtures of  
other models.

Now it works 🙂

Thanks everybody who tried to help me!

---

<div class="post-metadata">

**Author:** ![krani](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/958977/32.png) [@krani](https://www.ruby-forum.com/u/krani)\
**Post date:** [May 24, 2009, 8:25pm UTC](https://www.ruby-forum.com/t/problems-with-testing-wrong-table-columns/168355/7 "2009-05-24T20:25:23Z")

</div>

On May 24, 7:19 pm, krani [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> ```
> t.text "text"
> t.datetime "created_at"
> t.datetime "updated_at"
> 
> ```
> 
> end

The error occurs when loading the fixtures for brand. You should  
probably look at the fixtures file or schema for that table.

Fred
