2016-08-26 3 views
0

と等しくない記号を期待し、私はRSpecの持つcontrollのためのテストを書いた:RSpecの作成されたオブジェクト

it "populates an array of books" do 
    book = FactoryGirl.create(:book) 
    get :index 
    expect(:books).to eql([book]) 
end 

books_controller.rbを

def index 
    @books = Book.all.order("created_at DESC") 
end 

books.rb

FactoryGirl.define do 
    factory :book do |f| 
    f.name { Faker::Book.title } 
    f.author { Faker::Book.author } 
    f.press { Faker::Book.publisher } 
    f.cover { fixture_file_upload(Rails.root.join('spec', 'photos', 'testcover.jpg'), 'image/png') } 
    end 
end 

ランビン/レーキ仕様では、結果は:

1) BooksController GET #index populates an array of books 
Failure/Error: expect(:books).to eql([book]) 

    expected: [#<Book id: 1, name: "The Waste Land", author: "谢靖琪", isbn: nil, press: "University of Chicago Press"...e: "image/png", cover_file_size: 104531, cover_updated_at: "2016-08-26 04:00:19", page_number: nil>] 
     got: :books 

    (compared using eql?) 

    Diff: 
    @@ -1,2 +1,2 @@ 
    -[#<Book id: 1, name: "The Waste Land", author: "谢靖琪", isbn: nil, press: "University of Chicago Press", description: nil, grade_level: nil, lexile_level: nil, douban_link: nil, scholastic_link: nil, created_at: "2016-08-26 04:00:19", updated_at: "2016-08-26 04:00:19", cover_file_name: "fcbcb7417dbc88827d16765a.jpg", cover_content_type: "image/png", cover_file_size: 104531, cover_updated_at: "2016-08-26 04:00:19", page_number: nil>] 
    +:books 

これらは等しくありません。最初の期待された結果、「...」は略語であるようです。どうすれば修正できますか?私はあなたが何をしたいと思います

+0

なぜ 'です:symbol'本はオブジェクト' book'に等しくなければなりませんか?私はあなたが望むものを得ることができません。 –

+0

私はindexメソッドをテストしたい、books_controller#indexに "@books = Book.all"がある。 – xbin999

答えて

3

expect(assigns(:books)).to eq([book]) 
+0

はい、それは私のせいです。ありがとう。 – xbin999

+0

あなたは大歓迎です:) – Ursus

+0

助けが得られたら、正しい答えを選んでください。 =) – lcguida

関連する問題