新的測試,我努力獲得一些控制器測試通過。Rspec控制器錯誤預計<"index">但呈現與<"">
以下控制器測試引發錯誤:
expecting <"index"> but rendering with <"">
我在控制器規格下列操作之一:
require 'spec_helper'
describe NasController do
render_views
login_user
describe "GET #nas" do
it "populates an array of devices" do
@location = FactoryGirl.create(:location)
@location.users << @current_user
@nas = FactoryGirl.create(:nas, location_id: @location.id)
get :index
assigns(:nas).should eq([@nas])
end
it "renders the :index view" do
response.should render_template(:index)
end
end
在我的控制器宏,我有這樣的:
def login_user
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:user]
@current_user = FactoryGirl.create(:user)
@current_user.roles << Role.first
sign_in @current_user
User.current_user = @current_user
@user = @current_user
@ability = Ability.new(@current_user)
end
end
我正在使用設計和康康,並遵循他們的指導重新。測試。我相信我的用戶之前登錄過,並且有能力查看索引操作。
我該怎麼做才能讓測試通過?
- 更新1 -
控制器代碼:
class NasController < ApplicationController
before_filter :authenticate_user!
load_and_authorize_resource
respond_to :js
def index
if params[:location_id]
...
else
@nas = Nas.accessible_by(current_ability).page(params[:page]).order(sort_column + ' ' + sort_direction)
respond_to do |format|
format.html # show.html.erb
end
end
end
嘿。那仍然失敗。之前嘗試過 - 也試圖重複創建地點。不明白。另一個控制器通過相同的測試。 – simonmorley
他們的東西在你的控制器,防止你提出索引如果納茨表是空的? –
不,我試過去除了設計和cancan濾鏡。並用@nas = Nas.all替換查找以防萬一。令人沮喪! – simonmorley