rails rake test,url helpers not working

时间:2014-02-04 01:37:48

标签: ruby-on-rails capybara

使用“rake test”运行我的capybara导轨测试时获得以下信息。问题似乎是我在我的application.html.erb中使用的网址助手:

DashboardLoginTest#test_login_and_check_dashboard:
ActionView::Template::Error: arguments passed to url_for can't be handled. Please require routes or provide your own implementation
    app/views/layouts/application.html.erb:29:in `_app_views_layouts_application_html_erb__938277815294620636_4045700'
    test/integration/dashboard_login_test.rb:6:in `block in <class:DashboardLoginTest>'

这是application.html.erb中第29行的抱怨:

      <%= link_to("asdf", root_path, {:class => 'brand'}) %>

这是测试的样子:

  test "login and check dashboard" do
    visit("/")
    assert page.has_content?("welcome")
  end

这是我的test_helper.rb:

ENV["RAILS_ENV"] ||= "test"
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
require 'factory_girl'
require 'capybara/rails'

include Warden::Test::Helpers
Warden.test_mode!

def main_app
  Rails.application.class.routes.url_helpers
end

class ActiveSupport::TestCase
  ActiveRecord::Migration.check_pending!
  fixtures :all
end

class ActionDispatch::IntegrationTest
  # Make the Capybara DSL available in all integration tests
  include Capybara::DSL
  include Rails.application.routes.url_helpers

  def sign_in(user = nil)

    if user.nil?
      user = FactoryGirl.create(:user)
      $current_user = user
    end

    login_as(user, :scope => :user)
    user.confirmed_at = Time.now
    user.save

  end
end

0 个答案:

没有答案
相关问题