0
剛開始學習Rspec,我試圖在我的主頁上測試頁眉部分是否存在,然後再測試其餘頁面。Rails 5和Rspec 3.5:視圖中的application_controller方法部分
我的報頭部分採用從application_controller.rb
def current_user
@current_user ||= User.find_by(id: session[:user_id])
end
一個CURRENT_USER方法測試
<% if current_user %>
<%= image_tag(current_user.image_url, size: "30", :class => "profile_image") %>
<% end %>
<ul class="nav navbar-nav navbar-right">
<li><%= link_to "Home", root_path %></li>
<% if current_user %>
<li><%= link_to "TODOs", todos_path %></li>
<li><%= link_to "Log Out", logout_path, method: :delete %></li>
<% else %>
<li><%= link_to "Log In", 'auth/google' %></li>
<% end %>
試圖測試我查看用戶是否被記錄:
require 'rails_helper'
RSpec.describe "home_page/home.html.erb", type: :view do
context "When viewing the home page" do
it "the home page should render the _header partial" do
render :partial => "layouts/header"
expect(view).to render_template(:partial => 'header')
end
end
end
退貨
Failure/Error: <% if current_user %>
ActionView::Template::Error:
undefined local variable or method `current_user' for #<#<Class:0x007fc9d85409f8>:0x007fc9d77a4858>
Did you mean? current_page?
我想測試這兩個時,有一個登錄用戶,當沒有,但我不確定如何存根。
有什麼建議嗎?