在我的config / routes.rb中,我创建了一个针对数据控制器的特定路由:
match '/things/:id/data' => 'data#get', :via => :get
当我设置功能测试时,我收到以下错误:
ActionController::RoutingError: No route matches {:controller=>"data", :action=>"get"}
我的测试是:
require 'test_helper'
class ActionController::TestCase
include Devise::TestHelpers
end
class DataControllerTest < ActionController::TestCase
setup do
sign_in users(:one)
end
test "should get last data of thing" do
get :get
assert_response :success
end
end
如何在测试中指定/ things /:id / data需要用于匹配数据#get?
答案 0 :(得分:2)
试试这个
test "should get last data of thing" do
get :get, id => "ID OF YOUR THING"
assert_response :success
end
data
是一个member_action,因此您需要提供资源的ID(在您的情况下是事物)
答案 1 :(得分:0)
大声想知道,如果您将get
更改为show
,它是否有效?如果是这样,我担心覆盖类似动词名称的方法名称会搞砸。除此之外,你的路线测试说了什么?