0

私は何ヶ月も決定的な答えを探していましたが、RSpecの本はそれについてまったく触れていません:

RSpec2 のビュー スペックでパーシャルのスタブ アウト レンダリングを処理するにはどうすればよいですか?

Rails3/RSpec2 にアップグレードしようとしている大規模な (35,000 行以上のビューと関連する仕様) があります。私のビューはパーシャルをかなり広範囲に使用しており、この問題は私にとって大きな障害となっています。

before do
 view.should render_template("event_list", :locals => {:calendar => @calendar})
end

関連するすべての仕様が次のように失敗します。

expecting <"event_list"> but rendering with <"">.
Expected block to return true value.

何かアドバイス?

4

1 に答える 1

0

パーシャルの名前の代わりにハッシュを渡す必要があると思います:

view.should render_template(:partial=>"_event_list", :locals => {:calendar => @calendar})

編集

FWIW私もこれを機能させることができませんでしたが、モンキーパッチを適用すると成功しました:

class ActionView::Base
  def stub_partial(hash)
    view_paths.unshift(ActionView::FixtureResolver.new(hash))
  end
end

それから

before(:each) do
  view.stub_partial("path_to/_partial" => "")
end

たぶん、デビッドはそれを行う正しい方法を説明します...

于 2010-11-16T19:30:57.140 に答える