Подтвердить что ты не робот

Как проверить метод ApplicationController, определенный также как вспомогательный метод?

В моем ApplicationController у меня есть метод, определенный как вспомогательный метод:

helper_method :some_method_here

  • Как я могу протестировать ApplicationController в RSpec вообще?
  • Как включить/вызвать этот вспомогательный метод при тестировании моих просмотров/помощников?

Я использую Rails3 с RSpec2

4b9b3361

Ответ 1

Вы можете использовать анонимный контроллер , чтобы проверить свой ApplicationController, как описано в документации RSpec. Там также раздел тестовых помощников.

Ответ 2

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