在我的ApplicationController中,我有一个定义为辅助方法的方法:
helper_method :some_method_here
我正在使用Rails3和RSpec2
答案 0 :(得分:53)
您可以使用anonymous controller来测试ApplicationController,如RSpec文档中所述。 testing helpers还有一节。
答案 1 :(得分:22)
您可以在规范中的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习惯用法。