我的控制器的rspec测试返回nil(+工厂女孩)

我正在学习Rails上的rspec和工厂女孩的测试,我无法让它们工作。

我的用户控制器如下所示:

class UsersController < ApplicationController def index @users = User.all.order(:first_name) end end 

和测试:

 require 'spec_helper' describe UsersController do before(:each) do @user1 = FactoryGirl.create(:user, first_name: "B", last_name: "B", uid: "b") @user2 = FactoryGirl.create(:user, first_name: "A", last_name: "A", uid: "a") end describe "GET index" do it "sets a list of users sorted by first name" do get :index assigns(:users).should == [@user2, @user1] end end end 

但测试返回以下内容:

 UsersController GET index sets a list of users sorted by first name Failure/Error: assigns(:users).should == [@user2, @user1] expected: [#, #] got: nil (using ==) # ./spec/controllers/users_controller_spec.rb:13:in `block (3 levels) in ' 

你知道我做错了什么吗?

干杯!

这是’耙路线’:

  Prefix Verb URI Pattern Controller#Action root GET / meetings#index meetings GET /meetings(.:format) meetings#index login GET /login(.:format) sessions#new logout GET /logout(.:format) sessions#destroy POST /auth/:provider/callback(.:format) sessions#create auth_failure GET /auth/failure(.:format) sessions#failure users GET /users(.:format) users#index POST /users(.:format) users#create new_user GET /users/new(.:format) users#new edit_user GET /users/:id/edit(.:format) users#edit user GET /users/:id(.:format) users#show PATCH /users/:id(.:format) users#update PUT /users/:id(.:format) users#update DELETE /users/:id(.:format) users#destroy 

正如Jvnill上面所说,使用create。 另一种选择是在声明它们之后使用@ user1.save。

此外,就路线而言,请检查路线文件中的资源。