Search code examples
ruby-on-railsrspecmatcher

rspec - why does this array key comparison fail?


Failure/Error: @group.attributes.keys.should include (Group.first.attributes.keys)     
   expected 

["id", "duration", "frequency", "period", "group_size", "location", "service", "area_of_need", "created_at", "updated_at", "therapist_id", "start_date", "end_date", "student_id", "adhoc"] 
to include  
["id", "duration", "frequency", "period", "group_size", "location", "service", "area_of_need", "created_at", "updated_at", "therapist_id", "start_date", "end_date", "student_id", "adhoc"]

Test:

@group.attributes.keys.should include (Group.first.attributes.keys) 

Solution

  • Te answer was that the hash comparison fails on Ubuntu but works on Mac's.

    My workaround is:

    i=0
      while i < @group.attributes.count
      assert_equal @group.attributes[i], Group.first.attributes[i]
      i+= 1
    end
    
    # Comparing field by field as ruby hash comparison isn't working right - 
    # but only on Ubuntu!