在 rails 3 布局中测试逻辑的最佳方法是什么?
示例:当用户登录我的网站时,如果他们尚未完成入职流程,我会在所有页面的屏幕顶部向他们显示警报。这个逻辑被放置在应用程序布局中。我只是检查登录用户的特定密钥。如果密钥不存在,我会显示警报。一旦密钥出现(意味着他们已经完成了入职),我就不会显示警报。
目前我正在尝试通过视图测试来做到这一点,但是通过包含应用程序布局,我得到了各种ActionView::Template::Error: undefined method
“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 %>
我想确保如果未提供他们的入职详细信息,则将显示此消息,如果已提供,则不要显示此消息。