Ich habe die Tests ausgeführt und es scheint nicht, dass der Benutzer von einem Factory Girl erstellt wird. Hier ist, was ich habe:RSpec Rails NoMethodError: undefinierte Methode `password = 'für Benutzer
reports_controller_spec.rb
require 'rails_helper'
RSpec.describe ReportsController do
let(:user) { create :user }
before { sign_in user }
describe 'GET #subjects' do
subject { get :subjects }
it_behaves_like 'template rendering action', :subjects
end
end
Fabriken/users.rb
FactoryGirl.define do
factory :user do
email { Faker::Internet.safe_email }
password { Faker::Internet.password }
end
end
Und wenn ich den Test ausführen bekomme ich diesen Fehler:
ReportsController
GET #subjects
behaves like template rendering action
example at ./spec/support/shared/template_rendering_action.rb:2 (FAILED - 1)
Failures:
1) ReportsController GET #subjects behaves like template rendering action
Failure/Error: Unable to find matching line from backtrace
NoMethodError:
undefined method `password=' for #<User:0x000000063abd20>
Shared Example Group: "template rendering action" called from ./spec/controllers/reports_controller_spec.rb:11
...
I verstehe nicht, warum es nicht funktioniert. Jeder könnte mich auf den Fehler hinweisen? Vielen Dank.
Edit: Ich benutze Gerät.
Es sieht aus wie factory hinzufügen können Benutzer nicht erstellen Ursache es nicht sein Passwort zuweisen können. Könnten Sie Ihren Benutzermodellcode hinzufügen? – VAD
Ok, du benutzt Devise. Sie sollten zuerst die 'password_confirmation' zu Ihrer': user' Fabrik hinzufügen – VAD
Ja, es hat funktioniert, danke! Wie kann ich Ihre Antwort als richtig angeben? :) –