如何testing也定义为辅助方法的ApplicationController方法?
在我的ApplicationController中,我有一个方法定义为辅助方法:
helper_method :some_method_here
- 我如何在RSpec中testingApplicationController?
- 在testing我的视图/帮助器时,如何包含/调用这个帮助器方法?
我使用RSpec2的Rails3
您可以使用匿名控制器来testing您的ApplicationController,如RSpec文档中所述。 还有一个关于testing助手的部分。
您可以在规范中的subject
或@controller
上调用您的帮助器方法。
我一直在寻找这个问题的解决scheme,匿名控制器不是我正在寻找。 比方说,你有一个控制器生活在app/controllers/application_controller.rb
与一个简单的方法没有绑定到RESTpath:
class ApplicationController < ActionController:Base def your_helper_method return 'a_helpful_string' end end
然后你可以在spec/controllers/application_controller_spec.rb
编写你的testing,如下所示:
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惯用的方式。