比较日期与Rspec

时间:2014-02-26 16:20:32

标签: ruby-on-rails rspec

我有以下测试:

it 'gives the correct last parsed result' do
 expect(FactoryGirl.create(:category_page_with_parsed_results).last_parsed_result.date).to eql(Date.parse('2012-01-01'))
end

它失败了:

 expected: Sun, 01 Jan 2012
 got: Sun, 01 Jan 2012 00:00:00 UTC +00:00

这里的事情是,当我创建那个工厂时,我根本不写任何00:00:00的时间,所以我不知道为什么它会以这种方式返回。

有关如何测试此问题的任何想法?

2 个答案:

答案 0 :(得分:2)

好的,这样做

expect(FactoryGirl.create(:category_page_with_parsed_results).last_parsed_result.to_date).to eql(Date.parse('2012-01-01'))

答案 1 :(得分:0)

所以我猜你的“last_parsed_result”对象有一个存储在数据库中的日期属性。在irb(Ruby 2.1.0)控制台中玩游戏我有:

require 'date'
Date.parse('2012-01-01').to_s  => "2012-01-01"
DateTime.parse('2012-01-01').to_s => "2012-01-01T00:00:00+00:00"

我的猜测是last_parsed_result.date是一个DateTime对象,这就是为什么你得到00:00:00的时间。