rails console で試すと正しいはずのテストがRSpecで流すと通りません。
これはどこが問題なのでしょうか?
default_scope -> { order(created_at: :desc) }
で降順になるようにしています。
spec
1it 'comes most recent review first' do 2 review1 = Review.create(user_id: '3', shop_id: '1', title: 'title', content: 'content') 3 review2 = Review.create(user_id: '2', shop_id: '2', title: 'title', content: 'content') 4 review3 = Review.create(user_id: '1', shop_id: '3', title: 'title', content: 'content') 5 expect(Review.first).to eq review3 6end
error
1 Failure/Error: expect(Review.first).to eq review3 2 3 expected: #<Review id: nil, title: "title", content: "content", user_id: 1, shop_id: 3, created_at: nil, updated_at: nil> 4 got: nil
バリデーションは以下の通りです。
review
1class Review < ApplicationRecord 2 belongs_to :user 3 belongs_to :shop 4 default_scope -> { order(created_at: :desc) } 5 validates :user_id, presence: true 6 validates :shop_id, presence: true 7 validates :title, presence: true, length: { maximum: 20 } 8 validates :content, presence: true, length: { maximum: 300 } 9end
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/27 02:46 編集
2020/12/27 03:26