红宝石轨道功能测试问题

问题描述:

我的功能测试出现以下问题。红宝石轨道功能测试问题

mrbernz:MYLIFE bernardleung $红宝石测试/功能/ forums_controller_test.rb .....

1)错误: test_should_create_forum(ForumsControllerTest): 的ActiveRecord :: StatementInvalid:Mysql的:: BadFieldError:未知列'ID:3名' 在 '字段列表':INSERT INTO rolesidid:3 name)VALUES(707834473, '主持人')

错误要点如下的堆栈跟踪...

/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:158: in require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in require_or_load' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:224:in depend_on' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:136:in require_dependency' /Library/Ruby/Gems/1.8/gems/activerecord- 2.3.8/lib/active_record/fixtures.rb:853:try_to_load_dependency' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:868:in require_fixture_classes' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:865:in each' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:865:in require_fixture_classes' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:848:in fixtures' ./test/functional/../test_helper.rb:35 test/functional/forums_controller_test.rb:1:in require' test/functional/forums_controller_tes t.rb:1 无法加载roles_user,根本原因没有这样的文件来加载 - roles_user

/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in需要” /库/ Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:158:require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in require_or_load' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/ dependencies.rb:224:depend_on' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:136:in require_dependency' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:853:in try_to_load_dependency' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:868:in require_fixture_classes' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:865:在each' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:865:in require_fixture_类 /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:848:in`夹具 测试/功能/ forums_controller_test.rb:4

我forums_controller_test .RB如下所示(反正前几行)

require File.dirname(__FILE__) + '/../test_helper' 

class ForumsControllerTest < ActionController::TestCase 
    fixtures :forums, :users, :roles, :roles_users 

    test "should get index" do 
    get :index 
    assert_response :success 
    assert_not_nil assigns(:forums) 
    end 

我不明白为什么它抱怨“roles_user”我不要求任何地方,和我做什么要求或宣布为' roles_users'这是我有的表!

mysql> show tables; 
+-----------------------+ 
| Tables_in_mylife_test | 
+-----------------------+ 
| articles    | 
| categories   | 
| forums    | 
| pages     | 
| posts     | 
| roles     | 
| roles_users   | 
| schema_migrations  | 
| topics    | 
| users     | 
+-----------------------+ 
10 rows in set (0.15 sec) 

help ?!

+0

您的灯具可能有问题? – lest 2010-08-27 21:52:19

+0

你有一个夹具是指'roles_user'吗? – zetetic 2010-08-27 21:52:51

+0

不,我的灯具内没有任何引用roles_user的东西!我在我的整个项目上进行了一次搜索,并且在我的错误日志中没有任何其他地方提及roles_user! – mrbernz 2010-08-27 22:29:38

从ForumsControllerTest的Fixtures声明中删除:roles_users。 通过指定:roles_users作为夹具,它试图加载名为RolesUser的模型。我假设它是一个has_and_belongs_to_many连接表。

确保您users.yml灯具有:

user: 
roles: moderator 

和你的角色。阳明灯具有:

moderator: 
name: 'Moderator' 

id不在user.ymlroles.yml文件集。