過去 2 日間、ブログ、本、他の宝石のソース、および SO で見つけられるものすべてを読んで過ごしましたが、一生これを理解することはできません。確かに、私は Ruby gems や Rails エンジンを作成するのは初めてで、すべての RSpec ビュー メソッドに完全に精通しているわけではありません (しかし、アクセスできる限り多くのことを学んでいます)。
私は自分のプロジェクトを Github で公開しました (初期段階ではありますが、これは最近のプロジェクトで再利用しているマークアップに基づいており、ゆっくりとこの gem に取り込もうとしています)。
https://github.com/robmclarty/admin_bar-rails
テストを機能させる方法を見つけている間、新しい機能を追加するのをやめました。主な問題は、次のようにビューを部分的にレンダリングするだけの実行しようとしているテストです(後で他のものをチェックするために構築できるもの):
render :partial => 'admin_bar-rails/bar.html.haml'
rendered.should contain 'admin-panel'
...しかし、次のようにNameError
RSpec から取得view_renderer
します。
Failures:
1) rendering admin bar should render an empty admin bar
Failure/Error: render :partial => 'admin_bar-rails/bar.html.haml'
NameError:
undefined local variable or method `view_renderer' for #<RSpec::Core::ExampleGroup::Nested_2:0x007f99f260ec88>
# ./spec/views/admin_bar-rails/bar.html.haml_spec.rb:13:in `block (2 levels) in <top (required)>'
私が読んだあらゆる種類のものを含めて要求しようとしましたが (私のコードのコメント行からわかるように)、それを渡すことができません。
これは主に「動的マークアップをビューに挿入する」gem であるため、私 (およびあなた) は他の Rails プロジェクトでいくつかの一般的なテンプレートを再利用できます。私はこれについて間違っていますか?gem 内でこのようなビューをテストすることさえありますか? RSpec を使用する、より多くのビュー/アセットを使用する他の gem の例を教えてもらえますか?