Commit fd438e0dc3fec1fea96e733b9b435a9e165d48da
1 parent
3bdce461
Exists in
master
and in
7 other branches
A saner implementation for assert_equivalent
Using the predefined assertion methods will give us meaningful failure messages by default.
Showing
1 changed file
with
5 additions
and
3 deletions
Show diff stats
test/test_helper.rb
| ... | ... | @@ -87,9 +87,11 @@ class ActiveSupport::TestCase |
| 87 | 87 | alias :ok :assert_block |
| 88 | 88 | |
| 89 | 89 | def assert_equivalent(enum1, enum2) |
| 90 | - enum1 = enum1.group_by{|e|e}.values | |
| 91 | - enum2 = enum2.group_by{|e|e}.values | |
| 92 | - assert( (enum1.length == enum2.length) && ((enum1 - enum2) == []), "<#{enum1.inspect}> expected to be equivalent to <#{enum2.inspect}>") | |
| 90 | + norm1 = enum1.to_a | |
| 91 | + norm2 = enum2.to_a | |
| 92 | + assert_equal [], norm1 - norm2 | |
| 93 | + assert_equal [], norm2 - norm1 | |
| 94 | + assert_equal norm1.size, enum2.size, "Size mismatch: #{enum1.inspect} vs #{enum2.inspect}" | |
| 93 | 95 | end |
| 94 | 96 | |
| 95 | 97 | def assert_mandatory(object, attribute, test_value = 'some random string') | ... | ... |