CircleCI:包含涉及时间戳的规范的错误

时间:2015-05-09 10:52:25

标签: ruby-on-rails rspec circleci

我有一个返回ActiveRecord对象时间戳的方法的规范。

规范在本地传递,但无论何时在CircleCI上运行,预期与实际之间都会略有不匹配。

规范看起来像这样:

describe '#my_method' do
  it 'returns created_at' do
    object = FactoryGirl.create(:something)
    expect(foo.bar(object)).to eq object.created_at
  end
end

当它在本地传递时,在CircleCI上,我不断收到类似的错误消息。

以下是示例:

(1)

expected: 2015-05-09 10:42:59.752192641 +0000
got: 2015-05-09 10:42:59.752192000 +0000

(2)

expected: 2015-05-08 10:16:36.777541226 +0000
got: 2015-05-08 10:16:36.777541000 +0000

从错误中,我怀疑CircleCI正在计算时间戳值,但我没有足够的信息。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您还可以在模式中定义时间列的精度,这样ActiveRecord将负责在类型转换时截断精度。

请参见https://github.com/rails/rails/blob/39de1156970d52b441ff944862ebe16a47de784f/activemodel/lib/active_model/type/date_time.rb#L18