0
、shoulda-を使用してFactoryGirlはRailsのモデルの時刻属性のスキーマとActiveRecordのモデルを考える
create_table "foos", id: :serial, force: :cascade do |t|
t.date "date"
t.time "time"
# ...
とFactoryGirlからFoo
工場、
FactoryGirl.define do
factory :foo do
date Date.today
time Time.new(2001, 9, 11)
# ...
とRSpecのモデルのスペックを誤った時刻を設定します
it { is_expected.to have_attributes(
date: Date.today,
time: Time.new(2001, 9, 11),
# ...
テストに失敗しました。
-:time => 2001-09-11 00:00:00.000000000 -0700,
+:time => 2000-01-01 08:00:00.000000000 +0000,
被検者が値2000-01-01 08:00:00.000000000 +0000
あるtime
属性を有しているからです。
FactoryGirlは工場で指定された時間値Time.new(2001, 9, 11)
を使用していないのはなぜですか?
'date'と' time'はフィールドの恐ろしい名前です - 場所全体の予約語と衝突する可能性があります – Pavling
私は知っています。あなたが私の意味を持っているならば、それは "foos"です。 – ybakos
いいえ、 'foos'は問題ありません。予約語を混乱させず、例を明確にします。あなたのフィールド名の選択肢(実際の名前でない場合)はあなたの例を難読化しています: - / – Pavling