Piszę testy kontrolerów dla aplikacji, których nie zbudowałem, więc zdecydowanie był to proces uczenia się. Po raz pierwszy spotykam się z kontrolerem, który dziedziczy bezpośrednio z AbstractController :: Base. Nie zachowuje się oczywiście tak samo jak inni kontrolerzy.Rspec Testowanie kontrolera w Railsach kontrolera dziedziczącego z AbstractController :: Base
Jego format jest w przybliżeniu:
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
Próbowałem normalne testy, to gdzie jestem obecnie dostać COKOLWIEK wydarzy.
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
I tutaj jest mniej więcej, gdzie lądują moje awarie.
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>
czytałem się na abstrakcyjnych kontrolerów i ich rola w szynach tutaj: https://www.mobomo.com/2012/06/and-you-thought-render-farms-were-just-for-pixar/
ja przeczytać na docs tutaj: http://api.rubyonrails.org/classes/AbstractController/Base.html
będę naprawdę wdzięczny inny zestaw oczy na to i wskazówek o tym, jak testowaliście kontrolery i ich metody, z kontrolerami, które dziedziczą z AbstractController :: Base .... Czego mi brakuje?
-Schwad
Dziękuję. Będzie działać w ten sposób i zgłoś się. – Schwad