Railsで作成しているプロジェクトで、carrierwaveのgemを用いているので、そのテストコードを書こうとしてるのですが、どうしても上手く行きません。
基本的には、以下のサイトを参考に実装しています。
https://blog.hello-world.jp.net/ruby/2295/
以下は、image.rbのfactoryファイルです。 spec/fixtures/img
以下には、作成したsample.pngが存在します。
factories.rb
1include ActionDispatch::TestProcess 2 3FactoryGirl.define do 4 factory :image, class: Image do 5 moovie_id { Faker::Number.number(2) } 6 content { fixture_file_upload("spec/fixtures/img/sample.png", 'image/png') } 7 end 8end 9
そして、いかがspecファイルになります。
ruby
1 describe '#create' do 2 context "with valid attributes" do 3 it "has a valid factory" do 4 image = build(:image) 5 expect(image).to be_valid 6 end 7 end 8 end
基本的にはこの作業で良いはずなのですが、なぜか、 image = build(:image)
のcontentプロパティが以下のようにnilとなってしまいます。
#<Image:0xxxxxxxxxxxxx id: nil, content: nil, moovie_id: 25>
こちらは、なぜこのような現象が起こってしまうのでしょうか?
どなたか分かる方がいれば、教えていただきたいです。
よろしくお願い致します!
あなたの回答
tips
プレビュー