Вы можете вызывать ваши вспомогательные методы для 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.