rspec: ¿por qué esta comparación de atributos usng assert_equal falla cuando son iguales, solo en ubuntu?
Dos pruebas están fallando, pero solo en Ubuntu (12) pero no en mi (nueva) Mac.
El error dos son comparaciones de atributos de objetos de Registro Activo pero en todo mi esfuerzo para compararlos, por ejemplo Haciendo hash en la línea de comando y pegando los atributos, la comparación dice que son iguales.
Un verdadero rompecabezas, ya que tenemos un extenso conjunto de pruebas con cientos de pruebas. Rieles 3.2.8, rspec 2.11
Failure/Error: assert_equal @iep_service.attributes, IepService.first.attributes
MiniTest::Assertion:
<{"id"=>414,
"duration"=>30,
"frequency"=>3,
"period"=>"week",
"group_size"=>"group",
"location"=>nil,
"service"=>nil,
"area_of_need"=>"speech",
"created_at"=>Tue, 09 Oct 2012 01:53:39 UTC +00:00,
"updated_at"=>Tue, 09 Oct 2012 01:53:39 UTC +00:00,
"therapist_id"=>nil,
"start_date"=>nil,
"end_date"=>nil,
"student_id"=>469,
"adhoc"=>false}> expected but was
<{"id"=>414,
"duration"=>30,
"frequency"=>3,
"period"=>"week",
"group_size"=>"group",
"location"=>nil,
"service"=>nil,
"area_of_need"=>"speech",
"created_at"=>Tue, 09 Oct 2012 01:53:39 UTC +00:00,
"updated_at"=>Tue, 09 Oct 2012 01:53:39 UTC +00:00,
"therapist_id"=>nil,
"start_date"=>nil,
"end_date"=>nil,
"student_id"=>469,
"adhoc"=>false}>.
# (eval):2:in `assert_equal'
Código de prueba:
context "And a pre-existing Iep Service for one of those students" do
before(:each) { @iep_service = FactoryGirl.create(:iep_service, :student => @district.students.first) }
context "And an Iep Service CSV" do
before(:each) { @spreadsheet = IepServiceSpreadsheet.new(@district, open_spec_fixture_file('sample-ieps.csv')) }
specify "Prevent importing" do
# Leave database untouched
assert_equal 1, IepService.count
assert_equal @iep_service.attributes, IepService.first.attributes
# Provide error report
assert @spreadsheet.error_report.any?
end
end
end
También intenté:@iep_service.attributes.should == IepService.first.attributes
pero consiguió
Failure/Error: @iep_service.attributes.should == IepService.first.attributes
expected: {"id"=>421, "duration"=>30, "frequency"=>3, "period"=>"week", "group_size"=>"group", "location"=>nil, "service"=>nil, "area_of_need"=>"speech", "created_at"=>Tue, 09 Oct 2012 02:13:51 UTC +00:00, "updated_at"=>Tue, 09 Oct 2012 02:13:51 UTC +00:00, "therapist_id"=>nil, "start_date"=>nil, "end_date"=>nil, "student_id"=>483, "adhoc"=>false}
got: {"id"=>421, "duration"=>30, "frequency"=>3, "period"=>"week", "group_size"=>"group", "location"=>nil, "service"=>nil, "area_of_need"=>"speech", "created_at"=>Tue, 09 Oct 2012 02:13:51 UTC +00:00, "updated_at"=>Tue, 09 Oct 2012 02:13:51 UTC +00:00, "therapist_id"=>nil, "start_date"=>nil, "end_date"=>nil, "student_id"=>483, "adhoc"=>false} (using ==)
con una gran diferencia que incluye "verificar la implementación de ':
Diff:{"id"=>421, "duration"=>30, "frequency"=>3, "period"=>"week",
"group_size"=>"group", "location"=>nil, "service"=>nil, "area_of_need"=>"speech",
"created_at"=>Tue, 09 Oct 2012 02:13:51 UTC +00:00, "updated_at"=>Tue, 09 Oct 2012 02:13:51
UTC +00:00, "therapist_id"=>nil, "start_date"=>nil, "end_date"=>nil, "student_id"=>483,
"adhoc"=>false}.==({"id"=>421, "duration"=>30, "frequency"=>3, "period"=>"week",
"group_size"=>"group", "location"=>nil, "service"=>nil, "area_of_need"=>"speech", "created_at"=>Tue, 09 Oct 2012 02:13:51 UTC +00:00, "updated_at"=>Tue, 09 Oct 2012 02:13:51 UTC +00:00, "therapist_id"=>nil, "start_date"=>nil, "end_date"=>nil, "student_id"=>483, "adhoc"=>false}) returned false even though the diff between {"id"=>421, "duration"=>30, "frequency"=>3, "period"=>"week", "group_size"=>"group", "location"=>nil, "service"=>nil,
"area_of_need"=>"speech", "created_at"=>Tue, 09 Oct 2012 02:13:51 UTC +00:00,
"updated_at"=>Tue, 09 Oct 2012 02:13:51 UTC +00:00, "therapist_id"=>nil, "start_date"=>nil,
"end_date"=>nil, "student_id"=>483, "adhoc"=>false} and {"id"=>421, "duration"=>30,
"frequency"=>3, "period"=>"week", "group_size"=>"group", "location"=>nil, "service"=>nil,
"area_of_need"=>"speech", "created_at"=>Tue, 09 Oct 2012 02:13:51 UTC +00:00,
"updated_at"=>Tue, 09 Oct 2012 02:13:51 UTC +00:00, "therapist_id"=>nil, "start_date"=>nil,
"end_date"=>nil, "student_id"=>483, "adhoc"=>false} is empty.
Check the implementation of
{"id"=>421, "duration"=>30, "frequency"=>3, "period"=>"week", "group_size"=>"group",
"location"=>nil, "service"=>nil, "area_of_need"=>"speech", "created_at"=>Tue, 09 Oct 2012
02:13:51 UTC +00:00, "updated_at"=>Tue, 09 Oct 2012 02:13:51 UTC +00:00,
"therapist_id"=>nil, "start_date"=>nil, "end_date"=>nil, "student_id"=>483,
"adhoc"=>false}.==.