rspec-rails 2.14.0 を実行している Rails 3.2.13 アプリがあり、テストでビューが特定のパーシャルをレンダリングすることを確認しようとしています。実際には機能しますが、このテストを追加する必要があります。これが私がこれまでに持っているものです:
require 'spec_helper'
describe 'users/items/index.html.haml' do
let(:current_user) { mock_model(User) }
context 'when there are no items for this user' do
items = nil
it 'should render empty inventory partial' do
response.should render_template(:partial => "_empty_inventory")
end
end
end
これはエラーなしで実行されますが、合格しません。失敗は次のとおりです。
Failure/Error: response.should render_template(:partial => "_empty_inventory")
expecting partial <"_empty_inventory"> but action rendered <[]>
アイデアをありがとう。
編集
これは私にとってはうまくいきますが、ピーターのソリューションの方が優れています...
context 'when there are no items for this user' do
before do
view.stub(current_user: current_user)
items = nil
render
end
it 'should render empty inventory partial' do
view.should render_template(:partial => "_empty_inventory")
end
end
何らかの理由でrender
、ビューを呼び出さなければならないのは直感に反していましたが、そうです...