j.u.Objects follow-up: deepEquals(Object, Object)?
Eamonn McManus
Eamonn.McManus at Sun.COM
Fri Oct 9 10:02:34 UTC 2009
> Don't you know about assertArrayEquals() in JUnit ? It's in version 4.5.
I can use that if I know the values are arrays. The sort of case I'm thinking
of is a data-driven test where I have a big array with a lot of inputs and
the corresponding expected outputs, some but not all of which might be arrays,
including primitive arrays. For example, the inputs are expressions in a script
language and the outputs are what those expressions should evaluate to. The test
iterates over the array and does assertDeepEquals for each input/output pair.
But it is true that I could use the same new Object[] {x} trick there, in
other words define assertDeepEquals in terms of assertArrayEquals,
to get better failure messages. The main advantages I see of
deepEquals(Object, Object) are that it avoids allocating a throw-away array
(which is not a concern in unit tests), and more importantly that it is
easier to find than the new Object[] {x} trick.
Éamonn McManus · JMX Spec Lead · http://weblogs.java.net/blog/emcmanus
Ulf Zibis wrote:
> Am 09.10.2009 11:30, Eamonn McManus schrieb:
>> Joseph D. Darcy wrote:
>> > What are scenarios where this method would be used?
>>
>> I use a similar method fairly often in unit tests. JUnit's
>> assertEquals doesn't
>> do the right thing if its arguments happen to be arrays, so I use the
>> following
>> simple if inefficient implementation:
>
> Don't you know about assertArrayEquals() in JUnit ? It's in version 4.5.
>
> -Ulf
>
>
More information about the core-libs-dev
mailing list