2011-03-16 6 views
3

私はRailsので水をテストしていると私はこの簡単なテストでこだわっている:RSpecの:最も簡単なテストがエラーで失敗します。期待ブロック真の値を返すように

私はrouting_spec仕様/ルーティング/このコードを持っています。私のコードで何が悪い

Failure/Error: { :get => '/' }. 
     Expected block to return true value. 
    # ./spec/routing/routing_spec.rb:7:in `block (3 levels) in <top (required)>' 

:RB

require 'spec_helper' 

    describe "Accessing the root domain" do 
    it "should route to home#index" do 
     { :get => '/' }. 
     should route_to(:controller => 'home', :action=>'index') 
    end 
end 

これは、次のエラーで失敗しますか?

+0

どのバージョンを? – raidfive

+0

私はRSpec 2.5.1を使用しています – JAG

答えて

0

これは動作するはずですので、私の推測では設定に問題があると思われます。アプリの詳細を見ることなく、それが何であるかを知ることは難しい。また、7行目でエラーが発生していると言われていますが、上記のコードでは5行目を参照していますので、ファイル内に別のファイルが存在する可能性があります。

また、期待値が2行で記述されているため、エラーメッセージが混乱します。 1行に書いていれば、その文全体が見えます。 { :get => '/' }をブロックとして扱おうとしていないことを理解するのを助ける以外に、この問題の絞り込みに役立つものではありません。私のコントローラが間違ったビューをレンダリングするので

HTH、 デビッド

-1

これは私と一緒に起こりました。私は私のコントローラメソッドのロジックを修正し、すべてうまくいきました。

+0

「間違った視点」とはどういう意味ですか、それを修正するために正確に何をしましたか? –

1

この不透明なエラーメッセージは、Rails 3とRuby 1.9.2でも発生しました。私のケースでは、私がRubyに同梱されている古いバージョンのminitestを使用していて、そのバージョンでassert_blockメソッド(ActionDispatch :: Assertions :: RoutingAssertionsのassert_recognizesによって呼び出されます)がエラーメッセージを表示しないparamsは一致しませんでした)。私のための修正はバンドラ経由して、それを私のGemfileにminitestを追加してインストールすることでした:

group :test do 
    gem "minitest", ">= 2.6.1" # The minitest version that ships with Ruby is old and has bugs 
end 

私は、より理解しやすいエラーメッセージになるだろう:RSpecのの

The recognized options <{"action"=>"index", 
"controller"=>"publish/product_versions", 
"product_id"=>"ipad_app"}> did not match <{"controller"=>"publish/product_versions", 
"action"=>"indexx", 
"product_id"=>"ipad_app"}>, difference: <{"action"=>"indexx"}>. 
Expected block to return true value. 
関連する問題