使用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>
我错的任何想法?
答案 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)
。