【发布时间】:2012-11-10 14:48:22
【问题描述】:
在 rails 3 布局中测试逻辑的最佳方法是什么?
示例:当用户登录我的网站时,如果他们尚未完成入职流程,我会在所有页面的屏幕顶部向他们显示警报。这个逻辑被放置在应用程序布局中。我只是检查登录用户的特定密钥。如果密钥不存在,我会显示警报。一旦密钥出现(意味着他们已经完成了入职),我就不会显示警报。
目前我正在尝试通过视图测试来执行此操作,但是通过包含应用程序布局,我得到了各种 ActionView::Template::Error: undefined methodauthenticate' 的 nil:NilClass` 错误,而且我似乎无法测试此功能。
我需要确保我有这个正在测试,因为如果由于某种原因我的一个开发人员意外破坏了这个功能(显示的视图不完整),我们需要在构建时立即知道。
我试图在我的布局中测试的代码如下所示:
<% if user_signed_in? %>
<% unless current_user.has_completed_onboarding? %>
<div class="alert">
You cannot accept payments from your clients until you set up your payment gateway.
<%= link_to "Set up your", payment_gateway_path %> payment gateway. Its quick, we promise. :)
</div>
<% end %>
<% end %>
我想确保如果未提供他们的入职详细信息,则会显示此消息,如果已提供,则不要显示此消息。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 rspec rspec2 rspec-rails