je ce fichier RSpec à exécuter:Rails 5 + factorygirl + Rspec: méthode d'aide non définie
require 'rails_helper'
RSpec.describe FinancialManager::SalaryRecord::SomeRecordsController,
type: :controller,
financial_manager: true,
salary_record: true,
some_record: true do
context "GET #index" do
it "assigns all record in instance variable" do
some_record =
FactoryGirl.create(
:valid_financial_manager_salary_record_some_record
)
get :index
expect(assigns(:financial_manager_salary_record_some_records))
.to eq([some_record])
end
end
end
qui utilisant ce modèle d'enregistrement:
class FinancialManager::SalaryRecord::SomeRecord < ApplicationRecord
sanitize = ->(s) { ActionController::Base.helpers.sanitize(s) }
validates :level,
presence: true,
inclusion: {
in: sanitize.call("levels")
},
numericality: { only_integer: true }
end
Le fichier modèle ci-dessus appelle une méthode levels
qui est une méthode d'aide que j'ai définie dans le dossier helpers
. Quand je lance le fichier RSpec, je suis arrivé cette erreur:
Failure/Error:
FactoryGirl.create(
:valid_financial_manager_salary_record_some_record
)
NoMethodError:
undefined method `levels' for #<FinancialManager::SalaryRecord::SomeRecord:0x000000077f2db0>
La question est, comment puis-je utiliser la méthode d'aide lors de l'exécution des tests RSpec? Et suis-je en train d'utiliser la méthode d'aide correctement?
Meilleures salutations
Merci d'avoir posté la réponse à votre question, j'avais du mal à trouver comment invoquer des assistants à partir d'un rappel d'usine et cela a fonctionné. +1 Vous devriez accepter votre propre réponse ^^ – David