轨道中具有特定路线的功能测试

时间:2013-03-19 09:48:37

标签: ruby-on-rails ruby-on-rails-3 functional-testing

在我的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?

2 个答案:

答案 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,它是否有效?如果是这样,我担心覆盖类似动词名称的方法名称会搞砸。除此之外,你的路线测试说了什么?