Ruby on rails 如何在rails功能测试中获取当前控制器对象的句柄/引用?
我一定错过了一些非常简单的东西,但找不到答案。我在Ruby on rails 如何在rails功能测试中获取当前控制器对象的句柄/引用?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我一定错过了一些非常简单的东西,但找不到答案。我在bar\u控制器中有一个名为foo的方法。我只想从函数测试内部调用该方法 这是我的控制器: class BarsController < ApplicationController def foo # does stuff end end class BarsController
bar\u控制器
中有一个名为foo
的方法。我只想从函数测试内部调用该方法
这是我的控制器:
class BarsController < ApplicationController
def foo
# does stuff
end
end
class BarsController
下面是我的功能测试:
class BarsControllerTest << ActionController::TestCase
def "test foo" do
# run foo
foo
# assert stuff
end
end
class BarsControllerTest您需要使用类似HTTP动词的方式调用此操作
get :foo
post :foo
等等。我在“使用Rails进行敏捷Web开发”一书中找到了答案。TestCase初始化每个功能测试所需的三个实例变量:@controller(包含被测控制器的实例)、@request和@response 啊,我想我现在明白了。我来自java背景。那么,我猜控制器就像servlet?通常,服务器容器实例化servlet,rails服务器实例化控制器,因此必须通过http访问控制器。ControllerTest将对象包装在rails堆栈中。你好像提出了这个要求。在您拥有request和response object.hi shingara之后,我能够使用@controller获得控制器实例。谢谢你的帮助。
get :foo
post :foo