繁体   English   中英

红宝石路轨功能测试问题

[英]ruby rails functional test problem

我的功能测试遇到以下问题。

mrbernz:mylife bernardleung $ ruby​​ test / functional / forums_controller_test.rb .....

1)错误:test_should_create_forum(ForumsControllerTest):ActiveRecord :: StatementInvalid:Mysql :: BadFieldError:'字段列表'中的未知列'id:3 name':INSERT INTO rolesidid:3 name )值(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 / gem_original_require' /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 / gem_original_require' /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 / gem_original_require' /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'/ gem_original_require' /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 / gem_original_require' /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 / gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in /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 Library require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in Ruby require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in Gems require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in 1.8 require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in gems require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in activesupport-2.3.8 require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in lib require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in active_support require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in dependencies.rb:265:in require_or_load' 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:中的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/g ems / activerecord-2.3.8 / lib / active_record / fixtures.rb:848:在fixtures' ./test/functional/../test_helper.rb:35 test/functional/forums_controller_test.rb:1:in / functional / forums_controller_test.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 / gem_original_require' /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 / gem_original_require' /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 / gem_original_require' /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'/ gem_original_require' /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 / gem_original_require' /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 / gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in /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 Library require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in Ruby require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in Gems require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in 1.8 require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in gems require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in activesupport-2.3.8 require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in lib require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in active_support require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in dependencies.rb:265:in require_or_load' 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:中的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/g ems / activerecord-2.3.8 / lib / active_record / fixtures.rb:848:在“夹具”测试/功能/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)

救命?!

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

确保您的users.yml装置具有:

user:
 roles: moderator

并且您的role.yml装置具有:

moderator:
 name: 'Moderator'

并且该iduser.ymlroles.yml文件中设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM