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