0
我試圖測試下列控制器操作(使用Ruby on Rails的,RSPEC和FactoryGirl):RSPEC錯誤:預期#<的ActiveRecord ::協會:: CollectionProxy>有:無
class ContactsController < ApplicationController
before_action :authenticate_user!
def index
@contacts = current_user.contacts
# @contacts = Contact.all
end
這裏我contacts_controller_spec.rb文件:
require 'rails_helper'
describe ContactsController do
before do
@user = FactoryGirl.create(:user_with_contacts)
sign_in @user
end
describe "GET INDEX" do
it "assigns @contacts" do
expect(assigns(:contacts)).to eq(@user.contacts)
end
end
Failure/Error: expect(assigns(:contact)).to eq([contact])
expected: [#<Contact id: 295, first_name: "Loy", email: "[email protected]", phone_number: "6044339393", created_at: "2015-09-12 19:13:42", updated_at: "2015-09-12 19:13:42", last_name: "Wyman", user_id: 343>]
got: #<Contact id: nil, first_name: nil, email: nil, phone_number: nil, created_at: nil, updated_at: nil, last_name: nil, user_id: nil>
這裏是我的users_spec.rb文件:
FactoryGirl.define do
factory :user do
email { Faker::Internet.email }
password { "32423fdsfasf42" }
factory :user_with_contacts do
transient do
contacts_count 2
end
after(:create) do |user, evaluator|
create_list(:contact, evaluator.contacts_count, user: user)
end
end
end
end
任何幫助嗎?我一直堅持這個很長一段時間。
如果我叫
puts @user.inspect
我得到
#<User id: 340, email: "[email protected]", encrypted_password: "$2a$04$Si5k6Q1eYERvhQITXKBoIOGEzPyK50E3IQ.yjRcqmDj...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: "2015-09-12 19:13:42", updated_at: "2015-09-12 19:13:42">
和
調用
puts @user.contacts.inspect
我得到
#<ActiveRecord::Associations::CollectionProxy [#<Contact id: 289, first_name: "Fae", email: "[email protected]", phone_number: "6044339393", created_at: "2015-09-12 19:13:42", updated_at: "2015-09-12 19:13:42", last_name: "Spinka", user_id: 340>, #<Contact id: 290, first_name: "Marcellus", email: "[email protected]", phone_number: "6044339393", created_at: "2015-09-12 19:13:42", updated_at: "2015-09-12 19:13:42", last_name: "Bashirian", user_id: 340>]>
它只是當我打電話給assigns(:contacts)問題發生!