功能测试不识别任何路线

时间:2011-06-07 12:55:23

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

我正在尝试为我的一个控制器编写一个非常基本的功能测试,但问题是它没有识别我的任何路由。它们都可以通过HTTP在应用程序中运行,并且可以在rake路径中看到。

事实上我甚至添加了

puts ActionController::Routing::Routes.inspect

它在错误发生之前就把我所有的路线都放了出来。

以下是测试:

require 'test_helper'

class UsersControllerTest < ActionController::TestCase
  test "should get signup" do
    get :new
    assert_response :success
    assert_not_nil assigns(:users)
  end
end

错误:

1) Error:
test_should_get_signup(UsersControllerTest):
ActionController::RoutingError: No route matches {:controller=>"users", :action=>"new"}
/test/functional/users_controller_test.rb:5:in `test_should_get_signup'

1 tests, 0 assertions, 0 failures, 1 errors
rake aborted!
Command failed with status (1): [/Users/projectzebra/.rvm/rubies/ruby-1.8.7...]

(See full trace by running task with --trace)

耙路线:

               POST   /users(.:format)                       {:controller=>"users", :action=>"create"}
new_user_en_gb GET    /users/new(.:format)                   {:controller=>"users", :action=>"new"}

2 个答案:

答案 0 :(得分:3)

尝试为路线本身添加功能测试,看看是否通过,然后从那里开始。

类似的东西:

test "should route to new user" do
  assert_routing '/users/new', { :controller => "users", :action => "new" }
end

答案 1 :(得分:0)

这是我的“旅程”宝石中的一个问题。他们在旅程1.0.4中使路线更加严格,这只会出现在“测试”环境中。它有利于“发展”和“生产”。

**确保使用与路径**

中声明的完全相同的参数

添加:

get :index, :locale => "en"

或在您的Gemfile更新中:

gem 'journey', '1.0.3'