我正在尝试在我的rails应用程序中编写一些功能测试,在application_controller.rb中我有:
before_filter :current_account
def current_account
@current_account ||= Account.find_by_subdomain!(request.subdomians.first)
end在运行测试时,request.subdomains不包含我正在寻找的有效子域,因此无法运行任何功能测试。
是否可以存根current_account方法或模拟request.subdomains对象?
发布于 2009-06-17 08:25:33
在您的功能测试中,您应该能够(使用mocha):
@request.expects(:subdomains).returns(['www'])发布于 2010-01-26 00:57:55
对我来说(对于Rails 2.3.4),正确的说法是
@controller.request.expects(:subdomains).returns(['www'])因为我不能直接访问@request。
发布于 2010-10-20 02:00:58
@controller.instance_variable_set(:@request, OpenStruct.new({:subdomains => 'www'}))您可以访问ruby中的任何内容:)
https://stackoverflow.com/questions/1004832
复制相似问题