2012-10-10 44 views
0
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"] 

測試:rspec - 爲什麼數組鍵比較失敗?

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

回答

1

特的回答是在Ubuntu上哈希比較失敗,但在Mac上工作。

我的解決方法是:

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! 
2

因爲a.should includes(b)斷言a.include? b是真實的,include?檢查是否數組中的元素包括一個對象,一個數組不是是否等於另一個

[1].include? [1] 
=> false 

[1].include? 1 
=> true 

[[1]].include? [1] 
=> true 
+0

Whay確實在Mac上的測試工作,只是沒有在Ubuntu? –