【发布时间】:2017-05-18 16:00:16
【问题描述】:
是否可以使用细化功能来存根控制器操作?
我在“my_controller_refinement.rb”中定义细化
require "my_controller"
module MyControllerRefinement
refine MyController do
def create_item(my_object = {})
return "test_id"
end
end
end
并在测试中使用如下-
require_relative "my_controller_refinement"
class MyControllerTest < ActionController::TestCase
using MyControllerRefinement
test "get item" do
post :create { my_object: { name: "Test", id: "test_id" } }
# Post redirects to the show page
assert_redirected_to action: "show", id: "test_id"
end
end
测试目录为 -
test/
--> my_controller_refinement.rb
--> my_controller_test.rb
但是细化并没有开始,实际的控制器动作似乎被调用了。
我是否遗漏了什么,或者不能将改进用于这种“存根”?
【问题讨论】:
-
您最好使用mocking library。另外ActionController::TestCase is depreciated in Rails 5,因此您可能需要重新考虑并使用控制器测试的集成程序。
标签: ruby-on-rails ruby stubbing refinements