Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rspec预期日期等于_Ruby On Rails_Ruby_Json_Rspec - Fatal编程技术网

Ruby on rails rspec预期日期等于

Ruby on rails rspec预期日期等于,ruby-on-rails,ruby,json,rspec,Ruby On Rails,Ruby,Json,Rspec,我有一个名为工单的对象,它具有以下模式: # == Schema Information # # Table name: work_orders # # id :integer not null, primary key # due_on :date # name :string(255) 当对象显示时,我还有一个Json输出: { id: 1, due_on: "2015-

我有一个名为工单的对象,它具有以下模式:

# == Schema Information
#
# Table name: work_orders
#
#  id                 :integer          not null, primary key
#  due_on             :date
#  name               :string(255)
当对象显示时,我还有一个Json输出:

{
   id: 1,
   due_on: "2015-06-08",
   name: "my work order"
}
我试图使用rspec确认json显示的日期与对象的日期匹配。这是我为其他对象做了50次的事情

我有以下资料:

exemplar = FactoryGirl.create(:work_order)
...
puts "Test: #{exemplar.due_on}"
expect(exemplar.name).to      eq(hash['name'])   #This works fine!
expect(exemplar.due_on).to    eq(hash['due_on']) #This blows up...
我得到的结果是:

Test: 2015-06-08

expected: "2015-06-08"
     got: Mon, 08 Jun 2015

我不明白的是“2015年6月8日星期一”从何而来。当我用puts语句打印日期时,它显示为2015-06-08…

Rails将字符串转换为日期对象
2015-06-08
是从日期到美国的输出:

d = Date.today
#=> Thu, 17 Jul 2014

puts d
#=> 2014-07-17
您可以将日期对象与字符串进行比较:

expect(exemplar.due_on.to_s).to eq(hash['due_on'])
或:

或使用:


examplar.due__on
返回
2015-06-08
?@Stefan当我使用“puts”时会返回,但在“expects”中,它会给我“Mon,08 Jun 2015”“我有没有机会得到你对另一个Rspec问题的帮助?”Zack确定,但请打开一个新问题我问了:
expect(exemplar.due_on).to eq(Date.parse(hash['due_on']))
expect(exemplar.due_on).to eq(hash['due_on'].to_date)