通过未定义的方法错误测试“应该获取索引”

Posted

技术标签:

【中文标题】通过未定义的方法错误测试“应该获取索引”【英文标题】:Test "should get index" throughs Undefined Method error 【发布时间】:2013-03-25 14:21:41 【问题描述】:

所有,我定义了以下模型:

class Role < ActiveRecord::Base
  attr_accessible :name

  has_many :users

  validates :name, presence: true
  validates :name, uniqueness: true

end

class User < ActiveRecord::Base
  attr_accessible :abv, :first_name, :full_name, :last_name, :role_id

  has_many :defects
  belongs_to :role

  validates :first_name, :last_name, :full_name, :abv, :role_id, presence: true
  validates :full_name, :abv, uniqueness: true

end

我最近更改了视图用户“索引”以将 user.role_id 字段显示为 user.role.name 以使视图更友好!这很好用!但是,当运行 rake 测试 users_controller_test 时,会出现以下错误:

1) 错误: test_should_get_index(UsersControllerTest): ActionView::Template::Error: nil:NilClass 的未定义方法“名称”

在搜索博客后,我发现有关擦除和重新创建测试数据库的参考资料适用于一个人,并将控制器中的“应该获取索引”测试从

get :index

到 get :index, :user.role_id => 1 #强制为已知值

但我所做的一切都没有纠正测试失败。我在这里缺少什么,这可能是如何定义测试夹具中的数据的问题,还是我缺少核心 Rails 概念?

一如既往,提前致谢,

理查德

【问题讨论】:

【参考方案1】:

如果您使用关联,您可以通过在两个不同的灯具之间定义一个参考节点来解决这个问题。

【讨论】:

以上是关于通过未定义的方法错误测试“应该获取索引”的主要内容,如果未能解决你的问题,请参考以下文章

ReferenceError:未定义窗口。当我通过 jest 运行 npm test 进行单元测试时出现此错误

Angular Accept.js打破单元测试'参考错误:未定义接受'

Laravel 5.2 单元测试错误:BadMethodCallException:调用未定义的方法 Illuminate\Database\Query\Builder::make()

错误:调用未定义的方法 Tests\Unit\SomeTest::assertStatus()

StackNavigator 通过组件给出未定义的错误

注册时出现未定义的方法错误