红宝石轨道功能测试问题
我的功能测试出现以下问题。红宝石轨道功能测试问题
mrbernz:MYLIFE bernardleung $红宝石测试/功能/ forums_controller_test.rb .....
1)错误: test_should_create_forum(ForumsControllerTest): 的ActiveRecord :: StatementInvalid:Mysql的:: BadFieldError:未知列'ID:3名' 在 '字段列表':INSERT INTO roles
(id
,id: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 ?!
从ForumsControllerTest的Fixtures声明中删除:roles_users。 通过指定:roles_users作为夹具,它试图加载名为RolesUser的模型。我假设它是一个has_and_belongs_to_many
连接表。
确保您users.yml
灯具有:
user:
roles: moderator
和你的角色。阳明灯具有:
moderator:
name: 'Moderator'
和id
值不在user.yml
或roles.yml
文件集。
您的灯具可能有问题? – lest 2010-08-27 21:52:19
你有一个夹具是指'roles_user'吗? – zetetic 2010-08-27 21:52:51
不,我的灯具内没有任何引用roles_user的东西!我在我的整个项目上进行了一次搜索,并且在我的错误日志中没有任何其他地方提及roles_user! – mrbernz 2010-08-27 22:29:38