3

我有路线:

  resources :users do
    resources :records do
      resources :grades
    end
  end

我如何对它们进行功能测试?

我可以做正确get的测试record

 test "should get index" do
    get :index, user_id: @user
    assert_response :success
    assert_not_nil assigns(:records)
  end

我该如何测试post

assert_difference('Record.count') do
  post :create, record: { comment: @record.comment, device: @record.device, status: @record.status }
end

# I will get error
ActionController::RoutingError: No route matches {:record=>{:comment=>"MyText",
:device=>"MyString", :status=>"pending"}, :controller=>"records", :action=>"create"}
4

1 回答 1

0

查看http://guides.rubyonrails.org/testing.html以获取有关 rails 中的功能/控制器测试的信息。

指南中的一个很好的例子:

test "should create record" do
  assert_difference('Record.count') do
    post :create, record: { comment: 'Some comment', device: 'Some device', status: 'Some status'}, user_id: @user.id
  end

  assert_redirected_to user_record_path(@user.id, assigns(:record))
end
于 2013-06-13T14:23:15.173 回答