在Rails中使用Rspec进行测试时没有方法错误

时间:2017-03-13 17:22:30

标签: ruby-on-rails testing rspec

使用Rspec进行测试时出现无方法错误。这是我的测试代码:

scenario 'admin updates a commissionrate' do
  create(:assignment, user_id: @user.id, role_id: 1)
  sign_in(@user)
  commissionrate = create(:commissionrate, rate: 0.05)

  visit edit_commissionrate_path(commissionrate)

  fill_in 'rate', with: 0.05
  click_on 'Eingaben speichern'

  expect(page).to have_content('erfolgreich')
end

这是佣金的工厂:

require 'faker'

FactoryGirl.define do
  factory :commissionrate do
    commissionrate     { Faker::Number.number(0.05)}
  end
end

我收到错误:undefined method 'commissionrate=' for #<Commissionrate:0xbc5ac10>

我错的任何想法?

2 个答案:

答案 0 :(得分:0)

我觉得您应该将工厂值分配给模型中的字段/列。委托是一个字段还是你真的应该将它重命名为rate?只需检查并查看。此外,如果您可以提供诸如型号名称和列之类的信息,那将非常有用。

答案 1 :(得分:0)

您似乎正在尝试分配commissionrate,这不是模型commissionrate的有效属性。

尝试更改行

commissionrate     { Faker::Number.number(0.05)}

rate     { Faker::Number.number(0.05)}

我可以看到此行rate中的commissionrate模型中有一列commissionrate = create(:commissionrate, rate: 0.05)