0
鑑於ActiveRecord模型與架構,FactoryGirl設置錯誤的時間爲Rails模型時間屬性
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)
# ...
,並使用shoulda-一個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,
因爲被測試者具有time
屬性,其值爲2000-01-01 08:00:00.000000000 +0000
。
FactoryGirl爲什麼不使用工廠指定的時間值Time.new(2001, 9, 11)
?
'日期'和'時間'是可怕的域名 - 容易與保留字發生衝突 – Pavling
我知道。如果你明白我的意思,那麼「foos」也是。 – ybakos
不,'foos'很好,它不會混淆任何保留字,並且讓你的例子變得清晰。您的字段名稱選擇(如果它們不是真實名稱)會混淆您的示例: - / – Pavling