2

このような Rspec テスト (実際には、RefineryCMS 独自のテスト スイートから取得)

require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')

module Refinery
  describe FastController do
    it "should render the wymiframe template" do
      get :wymiframe
      response.should be_success
    end
  end
end

次のエラーが発生します。

Failure/Error: get :wymiframe
ActionController::RoutingError:
  No route matches {:controller=>"refinery/fast", :action=>"wymiframe"}
# ./spec/controllers/fast_controller_spec.rb:6:in `block (2 levels) in <module:Refinery>'

この場合、Rspec 2.11 でリファイナリー 2.0.8 を使用しており、rake ルートを実行した後の関連セクションは次のようになります。

wymiframe GET     /wymiframe(/:id)(.:format)        refinery/fast#wymiframe

ルーティングエラーで失敗する他のいくつかのコントローラー Rspec を試しました。もちろん、バニラのRefineryコントローラーに追加する独自の追加メソッドのテストを作成しようとしていますが、まったく新しいRefineryインストールでコントローラーテストが機能するかどうかを確認したいと思いました。

これは単純な間違いに違いありません!助言がありますか?

4

1 に答える 1

1

私は偶然これに出くわしました。それ以外の:

get :wymiframe

私は使用する必要がありました:

get :wymiframe, { use_route: :any_old_thing }

なぜこれが機能したのかわかりません-特に「any_old_thing」の場合、意味のあるものやプロジェクトに関連するものはまったく使用していません。しかし、うまくいったようで、コントローラーをテストできるようになりました。

于 2012-10-30T08:52:26.960 に答える