5

ActionController :: TestCaseを無効にして実際にビューをレンダリングする適切な方法は何ですか?または、テストでレイアウトなしでビューをレンダリングする方法は何でしょうか?

rrを使用して、stub(@controller).render{""}を試しました。

しかし、これはassert_templateアサーションを壊しました。

ありがとう!

4

3 に答える 3

1

メインビューをレンダリングしながら、レイアウトだけを無効にするという同じ問題がありました。rspecモックを使用すると、これは私にとってうまくいきます。

@controller.stub(:layout).and_return(false)

rrを使用したことはありませんが、構文は次のようになると思います。

stub(@controller).layout { false }
于 2013-06-03T21:26:56.077 に答える
1

Rails6でこれをやりたかったのです。モカの宝石を使って:

ActionController::Metal.any_instance.stubs(:process).returns

Railsの他のバージョンの場合、答えを決定する最も簡単な方法はputs caller、アクションに追加してバックトレースをスキャンすることです。スタブしやすいものを見つけて試してみてください。

于 2020-01-17T19:38:50.440 に答える
0

デフォルトでは無効になっています。

有効にする場合は、次のことができます。

1)spec_helperでこれを呼び出します。

config.render_views

2)このステートメントをコントローラーテストクラス内に配置します。

render_views

無効にする場合は、次のようなfalseパラメータを追加するだけです。

render_views false

参照:https ://www.relishapp.com/rspec/rspec-rails/v/2-5/docs/controller-specs/render-views

于 2012-09-14T22:00:50.827 に答える