Ответ 1
Вы можете использовать анонимный контроллер , чтобы проверить свой ApplicationController, как описано в документации RSpec. Там также раздел тестовых помощников.
В моем ApplicationController у меня есть метод, определенный как вспомогательный метод:
helper_method :some_method_here
Я использую Rails3 с RSpec2
Вы можете использовать анонимный контроллер , чтобы проверить свой ApplicationController, как описано в документации RSpec. Там также раздел тестовых помощников.
Вы можете вызвать свои вспомогательные методы в subject
или @controller
в спецификации.
Я искал решение этой проблемы, и анонимный контроллер не был тем, что я искал. Скажем, у вас есть контроллер, живущий в app/controllers/application_controller.rb
с помощью простого метода, который не привязан к пути REST:
class ApplicationController < ActionController:Base
def your_helper_method
return 'a_helpful_string'
end
end
Затем вы можете написать свой тест в spec/controllers/application_controller_spec.rb
следующим образом:
require 'spec_helper'
describe ApplicationController do
describe "#your_helper_method" do
it "returns a helpful string" do
expect(subject.your_helper_method).to eq("a_helpful_string")
end
end
end
В то время как @controller
и subject
могут быть взаимозаменяемы здесь, я бы выбрал subject
как его идиоматический путь RSpec.