2017-03-13 3 views
0

Ich bekomme einen No Method Error beim Testen mit Rspec. Hier ist mein Code für den Test:Kein Methodenfehler beim Testen mit Rspec in Rails

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 

und dies ist die Fabrik für die commissionrate:

require 'faker' 

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

ich die Fehlermeldung: undefined method 'commissionrate=' for #<Commissionrate:0xbc5ac10>

Irgendwelche Ideen, wo ich falsch?

Antwort

0

Ich glaube, Sie sollten Factory-Werte zu Ihren Feldern/Spalten in Ihrem Modell zuweisen. Ist die Kommission ein Feld oder sollten Sie es tatsächlich als Rate umbenennen? Überprüfen Sie das und sehen Sie. Außerdem wäre es nützlich, wenn Sie Informationen wie den Modellnamen und die Spalten angeben können.

0

Scheint so, als ob Sie versuchen, commissionrate zuzuweisen, was kein gültiges Attribut des Modells commissionrate ist.

Versuchen Sie, die Linie

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

zu

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

ich sehen kann, zu ändern, dass es in dieser Zeile commissionrate = create(:commissionrate, rate: 0.05) eine Spalte rate in commissionrate Modell ist.

Verwandte Themen