正在使用的版本
导轨 - 3.2.13
Ruby - ruby 1.9.3p429(2013-05-15修订版40747)[x86_64-darwin11.4.2]
我跑了
$ rails generate integration_test static_pages
得到了
invoke rspec
create spec/requests/static_pages_spec.rb
遵循Rails Hartl教程Sec 3.2.1。
运行时出现以下错误:
$ bundle exec rspec spec/requests/static_pages_spec.rb
/Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/actionpack-3.2.13/lib/action_dispatch/routing/mapper.rb:175:in `default_controller_and_action': missing :controller (ArgumentError)
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/actionpack-3.2.13/lib/action_dispatch/routing/mapper.rb:72:in `normalize_options!'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/actionpack-3.2.13/lib/action_dispatch/routing/mapper.rb:60:in `initialize'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/actionpack-3.2.13/lib/action_dispatch/routing/mapper.rb:1308:in `new'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/actionpack-3.2.13/lib/action_dispatch/routing/mapper.rb:1308:in `add_route'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/actionpack-3.2.13/lib/action_dispatch/routing/mapper.rb:1287:in `decomposed_match'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/actionpack-3.2.13/lib/action_dispatch/routing/mapper.rb:1269:in `block in match'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/actionpack-3.2.13/lib/action_dispatch/routing/mapper.rb:1269:in `each'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/actionpack-3.2.13/lib/action_dispatch/routing/mapper.rb:1269:in `match'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/actionpack-3.2.13/lib/action_dispatch/routing/mapper.rb:501:in `map_method'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/actionpack-3.2.13/lib/action_dispatch/routing/mapper.rb:463:in `get'
from /Users/mwsage/rails_projects/sample_app/config/routes.rb:2:in `block in <top (required)>'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/actionpack-3.2.13/lib/action_dispatch/routing/route_set.rb:289:in `instance_exec'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/actionpack-3.2.13/lib/action_dispatch/routing/route_set.rb:289:in `eval_block'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/actionpack-3.2.13/lib/action_dispatch/routing/route_set.rb:267:in `draw'
from /Users/mwsage/rails_projects/sample_app/config/routes.rb:1:in `<top (required)>'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:245:in `load'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:245:in `block in load'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:236:in `load_dependency'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:245:in `load'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/railties-3.2.13/lib/rails/application/routes_reloader.rb:40:in `block in load_paths'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/railties-3.2.13/lib/rails/application/routes_reloader.rb:40:in `each'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/railties-3.2.13/lib/rails/application/routes_reloader.rb:40:in `load_paths'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/railties-3.2.13/lib/rails/application/routes_reloader.rb:16:in `reload!'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/railties-3.2.13/lib/rails/application/routes_reloader.rb:26:in `block in updater'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/activesupport-3.2.13/lib/active_support/file_update_checker.rb:78:in `call'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/activesupport-3.2.13/lib/active_support/file_update_checker.rb:78:in `execute'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/railties-3.2.13/lib/rails/application/routes_reloader.rb:27:in `updater'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/railties-3.2.13/lib/rails/application/routes_reloader.rb:7:in `execute_if_updated'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/railties-3.2.13/lib/rails/application/finisher.rb:66:in `block in <module:Finisher>'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/railties-3.2.13/lib/rails/initializable.rb:30:in `instance_exec'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/railties-3.2.13/lib/rails/initializable.rb:30:in `run'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/railties-3.2.13/lib/rails/initializable.rb:55:in `block in run_initializers'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/railties-3.2.13/lib/rails/initializable.rb:54:in `each'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/railties-3.2.13/lib/rails/initializable.rb:54:in `run_initializers'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/railties-3.2.13/lib/rails/application.rb:136:in `initialize!'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/railties-3.2.13/lib/rails/railtie/configurable.rb:30:in `method_missing'
from /Users/mwsage/rails_projects/sample_app/config/environment.rb:5:in `<top (required)>'
from /Users/mwsage/rails_projects/sample_app/spec/spec_helper.rb:3:in `require'
from /Users/mwsage/rails_projects/sample_app/spec/spec_helper.rb:3:in `<top (required)>'
from /Users/mwsage/rails_projects/sample_app/spec/requests/static_pages_spec.rb:1:in `require'
from /Users/mwsage/rails_projects/sample_app/spec/requests/static_pages_spec.rb:1:in `<top (required)>'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `load'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `block in load_spec_files'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `map'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `load_spec_files'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:22:in `run'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:69:in `run'
from /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails3tutorial2ndEd/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:8:in `block in autorun'
的Gemfile
source 'https://rubygems.org'
gem 'rails', '3.2.13'
gem 'bootstrap-sass', '2.1'
gem 'faker', '1.0.1'
gem 'will_paginate', '3.0.3'
gem 'bootstrap-will_paginate', '0.0.6'
gem 'jquery-rails', '2.0.2'
group :development, :test do
gem 'sqlite3', '1.3.5'
gem 'rspec-rails', '2.11.0'
# gem 'guard-rspec', '1.2.1'
# gem 'guard-spork', '1.2.0'
# gem 'childprocess', '0.3.6'
# gem 'spork', '0.9.2'
end
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '3.2.5'
gem 'coffee-rails', '3.2.2'
gem 'uglifier', '1.2.3'
end
group :test do
gem 'capybara', '1.1.2'
gem 'factory_girl_rails', '4.1.0'
gem 'cucumber-rails', '1.2.1', :require => false
gem 'database_cleaner', '0.7.0'
# gem 'launchy', '2.1.0'
# gem 'rb-fsevent', '0.9.1', :require => false
# gem 'growl', '1.0.3'
end
group :production do
gem 'pg', '0.12.2'
end
# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'
# To use Jbuilder templates for JSON
# gem 'jbuilder'
# Use unicorn as the app server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'debugger'
static_pages_spec.rb
require 'spec_helper'
describe "Static pages" do
describe "Home page" do
it "should have the content 'Sample App'" do
visit '/static_pages/home'
page.should have_content('Sample App')
end
end
describe "Help page" do
it "should have the content 'Help'" do
visit '/static_pages/help'
page.should have_content('Help')
end
end
end
非常感谢任何帮助。我可以提供其他版本号或文件,只是不确定要包括什么。
routes.rb(sample_app / routes.rb)
SampleApp::Application.routes.draw do
get "static_pages/home"
get "static_pages/help"
end
答案 0 :(得分:0)
您应该将您的课程放在describe
部分
假设您的控制器类是StaticPagesController
describe StaticPagesController do
end
或者您可以将type: :controller
添加到描述部分,如此
describe "foo", type: :controller do
end
答案 1 :(得分:0)
您也应该更改路线。我相信他们看起来像:
SampleApp::Application.routes.draw do
root 'static_pages#home'
match '/help' => 'static_pages#help', :via => 'get'
match '/about' => 'static_pages#about', :via => 'get'
match '/contact' => 'static_pages#contact', :via => 'get'