Ich schreibe Controller-Tests für eine Anwendung, die ich nicht erstellt habe, also war es definitiv ein Lernprozess. Dies ist das erste Mal, dass ich auf einen Controller stoße, der direkt von AbstractController :: Base erbt. Es verhält sich offensichtlich nicht wie andere Controller.Rspec Controller testet in Rails einen Controller, der von AbstractController :: Base erbt
Das Format ist ungefähr:
class SchwadGenericController < AbstractController::Base
def schwad_method var_one, var_two = nil, var_three = nil
if var_two.blank?
var_one.generic_method
end
render template: "schwad_templates/generic_template", layout: false
end
end
ich normale Tests ausprobiert, das ist, wo ich bin derzeit ANYTHING passieren zu bekommen.
require 'rails_helper'
describe SchwadGenericController do
# before(:each) do
# SchwadGenericController.skip_authorize_resource
# end
# login_user
let!(:variable){ create(:my_factory_variable) }
describe 'controller methods' do
it 'should hit this method' do
binding.pry
SchwadGenericController.schwad_method(variable)
# expect(response).to_render template: "schwad_templates/generic_template"
end
end
end
Und hier ist ungefähr wo meine Fehler landen.
Failures:
1) SchwadGenericController controller methods should hit this method
Failure/Error: Unable to find matching line from backtrace
NoMethodError:
undefined method `request=' for # <SchwadGenericController:0x007f8022db0a20>
las ich auf abstrakte Controller und ihre Rolle in Schienen: https://www.mobomo.com/2012/06/and-you-thought-render-farms-were-just-for-pixar/
ich auf die docs hier nachlesen: http://api.rubyonrails.org/classes/AbstractController/Base.html
Ich würde wirklich zu schätzen einen anderen Satz von Augen auf diese und Führung wie Sie Controller und ihre Methoden getestet haben, mit Controllern, die von AbstractController :: Base erben. Was fehlt mir?
-Schwad
Danke. Wird auf diesem Weg laufen und melden. – Schwad