2015-08-31 57 views
2

我有一個視圖app/views/debtors/index.html.erb,它呈現位於app/views/application/_advanced_search.html.erb的常見部分。在Rails中查看規範中的常見部分

我想測試index視圖,但也需要存根上面的部分。我怎樣才能做到這一點?我試過:

  • stub_template '_advanced_search' => 'Stubbed',但部分未找到;
  • stub_template '_advanced_search.html.erb' => 'Stubbed',與上面相同;
  • view.lookup_context.view_paths.push 'app/views/application'stub_template '_advanced_search' => 'Stubbed',但後來它開始抱怨部分使用的未定義變量。

我也嘗試使用完整路徑的部分,但仍然沒有運氣,它開始說部分缺失。

在Rails應用程序中存儲常見部分的正確方法是什麼?

+0

'stub_template'application/_advanced_search'=>'x''怎麼樣? – dax

+0

它說部分缺失。它在'/ home/user/project/app/views'中查找,然後在'application/_advanced_search_controls'和'application/_advanced_search'中查找。 – linkyndy

+0

奇怪...你可以看到[實施](https://github.com/rspec/rspec-rails/blob/a2a37ee192828ee81084d966e6f2f6f68d9773c0/lib/rspec/rails/example/view_example_group.rb#L73)只是推你的存根到視圖路徑數組的開始處。也許嘗試看看視圖路徑數組?否則我會猜想這是軌道autoload'魔術'變得混亂。 – dax

回答

0

有時Ruby會說「部分未找到」,因爲您的部分文件中似乎存在一些錯誤,一些Ruby錯誤。

我建議你首先顯示任何不包含Ruby代碼的硬編碼html,如果它能正常工作,那麼你的部分似乎會出現一些錯誤。

我以前也遇到過這個問題。

+0

我目前使用這個部分一段時間,但我沒有任何測試的意見。現在我開始寫意見,並打這個問題。所以我不認爲這個部分有問題。 – linkyndy