Похоже, что cuke не отображает полное сообщение об ошибке (по крайней мере, когда проблема возникает в шаблоне), что делает его действительно трудным для обнаружения проблемы.
Вот что выводится при некоторой ошибке:
...
And I am on checkout page # features/step_definitions/webrat_steps.rb:6
You have a nil object when you didn't expect it!
The error occurred while evaluating nil.items (ActionView::TemplateError)
features/manage_orders.feature:9:in `And I am on checkout page'
...
А вот что показывает rails, когда та же проблема воспроизводится в браузере:
Showing app/views/cart/show.erb where line #46 raised:
You have a nil object when you didn't expect it!
The error occurred while evaluating nil.items
Extracted source (around line #46):
43: </script>
44:
45: <% ths = %w{th_title th_price th_subtotal th_quantity}.collect {|th| t th.intern} %>
46: <% table(@cart.items, ths) do |cart_item, style| -%>
47: <tr class="<%= style %>">
48: <td width="60%"><%=h cart_item.title %></td>
49: <td width="20%"><%=number_to_currency cart_item.price %></td>
Бывший слишком аккуратный. Не исключение и в cucumber.log. И мой шаблон имеет несколько партиалов и макет. Без подсказок, довольно расследование.
Есть ли какая-нибудь секретная заглушка, которую можно вытащить, чтобы ошибка показа огурца была полной?