1

環境:Rails 3.2.12、rspec 2.12

非常に単純なルーティングテストでアプリをブートストラップしようとしています。テストは失敗していて、何が間違っているのかわかりません。

失敗したテストは次のとおりです。

# spec/routing/meow_route_spec.rb
require 'spec_helper'
describe "meow routes" do
  it "routes post /meows to meows#create" do
    expect(:post => "/meows").to route_to(
      :controller => "meows",
      :action => "create",
    )
  end
end

そして私のルート:

# config/routes.rb
Meowserver::Application.routes.draw do
  resources :meows
end

rake routes教えてくれます:

polk:meowserver dpassage$ rake routes
    meows GET    /meows(.:format)          meows#index
          POST   /meows(.:format)          meows#create
 new_meow GET    /meows/new(.:format)      meows#new
edit_meow GET    /meows/:id/edit(.:format) meows#edit
     meow GET    /meows/:id(.:format)      meows#show
          PUT    /meows/:id(.:format)      meows#update
          DELETE /meows/:id(.:format)      meows#destroy

しかし、rspecを実行すると、次のエラーが発生します。

1) meow routes routes post /meows to meows#create
  Failure/Error: expect(:post => "/meows").to route_to(
    No route matches "/meows"
  # ./spec/routing/meow_route_spec.rb:4:in `block (2 levels) in <top (required)>'

一体何がここで起こっているのですか?これまでのところ、これらが私のアプリに影響を与える唯一のファイルです。コントローラーやモデルでさえも、外部から内部でビルドしようとしているだけです。

4

1 に答える 1

1

さて、コントローラーを追加すると問題が解決することがわかりました。私はこれを追加しました:

# app/controllers/meows_controller.rb
class MeowsController < ApplicationController
end

...そして今、テストは合格です。非常にイライラするエラーメッセージ!

于 2013-02-21T22:18:19.907 に答える