ぞす!げんきちです!\\\\٩( 'ω' )و ////
「いや、誰だよ」って方は、下記リンクを見てやってください。
-
はじめまして!げんきちです! - げんきちの秘密基地
-
僕がエンジニアになりたい理由 - げんきちの秘密基地
目次〜
テストをしていて詰まりました。
定義元
FactoryBot.define do
factory :message do
content {Faker::Lorem.sentence}
image {File.open("#{Rails.root}/public/images/no_image.jpg")}
user
group
end
end
このファクトリーボットをメソッドで呼び出しました。
buildメソッド
[5] pry(#<Class>)> FactoryBot.build(:message)
=> #<Message:0x007fe08e3acd40 id: nil, content: "じぶん 弥生 ちらかす ぼうず。", image: nil, group_id: nil, user_id: nil, created_at: nil, updated_at: nil>
attributes_forメソッド
[6] pry(#<Class>)> FactoryBot.attributes_for(:message)
=> {:content=>"日没 太る さいぼう, さいほう もうす。", :image=>#<File:/Users/kitamuragenki/projects/chat-space/public/images/no_image.jpg>}
createメソッド
[7] pry(#<Class>)> FactoryBot.create(:message)
=> #<Message:0x007fe092050990
id: 3,
content: "白菊 みなと あっとうする げいひんかん。",
image: "no_image.jpg",
group_id: 30,
user_id: 24,
created_at: Thu, 28 Feb 2019 10:50:05 UTC +00:00,
updated_at: Thu, 28 Feb 2019 10:50:05 UTC +00:00>
同じ定義元から呼び出しているのに、値が入ったり、抜けたりする...?
メソッドによって値の入り方が変わるまで当然。
気になるのは、imageの値。
attributes_forは、擬似的にcreateアクションをリクエストしたい時とか。
だから、ちゃんと.jpgのあるディレクトリが指定できてるからおっけー。
createメソッドは、DBに保存された値がそのまま入ってるからおっけー。
buildメソッドは...
image: nil ってなぜだぁああああああ!!?
試したこと
carrierwaveが影響してるのかな...
factoryBot carrierwaveで調べてみました。
github.com
imageの記述を修正しました。
include ActionDispatch::TestProcess
FactoryBot.define do
factory :message do
content {Faker::Lorem.sentence}
image { Rack::Test::UploadedFile.new(Rails.root.join('public/images/no
_image.jpg'), 'image/jpg') }
user
group
end
結果は変わりませんでした。
[2] pry(#<RSpec::ExampleGroups::Message::Create::CanSave>)> FactoryBot.build(:message)
=> #<Message:0x007fea13ab3d08 id: nil, content: "白菊 かい たいさ 胃。", image: nil, group_id: nil, user_id: nil, created_at: nil, updated_at: nil>
今回は、createアクションのテストです。
なので、attributes_forを使えば目的は達成できるため我慢します。
しかし、すっごく気になる...
ご存知の方いたら、教えていただけたら嬉しいです!🙇♂️
問題提起で終わってすいません。
時間がある時に、追記します。
<一日一新>
渋谷のVRカフェ。ぅおおおおおお!ってなりました。
<学習進捗>
学習開始からの期間 :82日
今日までの合計時間:813h
今日までに到達すべき目標時間:748h
目標との解離:65h
「10,000時間」まで、
残り・・・「9,187時間!」
以上です。
読んでくれた方々、ありがとうございました!((_ _ (´ω` )ペコ。
genkichi.hateblo.jp
genkichi.hateblo.jp
twitter.com