4

私はビュー仕様を書いていますが、(haml で) 次の行を含むビューをレンダリングします:

=link_to new_post_path

しかし、仕様は次のように失敗します:

ActionController::RoutingError: No route matches {:action=>"new", :controller=>"post"}

new_post_pathビュー仕様にとって実際には重要ではないため、メソッドをスタブしようとしていますが、運がありませんでした。

私の仕様の範囲内で、次の 2 つのバリエーションを試してみましたが、うまくいきませんでした。

           stub!(:new_post_path).and_return("this path isn't important")
controller.stub!(:new_post_path).and_return("this path isn't important")
4

3 に答える 3

3
allow(view).to receive(:new_post_path).and_return("this path isn't important")

それはrspec 3.2構文です

古い構文は次のようになると思います

view.stub(:new_post_path).and_return("this path isn't important")
于 2015-06-16T23:39:39.060 に答える
3

メソッドnew_post_pathRails.application.routes.url_helpersモジュールから取得されます。そのモジュールのメソッドをスタブする必要があります

Rails.application.routes.url_helpers.stub(:new_post_path).and_return("this path isn't important")
于 2012-12-12T18:08:58.943 に答える