At the very leaset assertThat(actual, is(expected));
gives better diagnostics then there is assertThat(actual, not(is(unexpected)); nice ones are assertThat(actual, hasItems(expectedContents)); On 12 June 2011 20:43, Benson Margulies <[email protected]> wrote: > Next class. I haven't learned that one yet. > > On Sun, Jun 12, 2011 at 3:39 PM, Stephen Connolly > <[email protected]> wrote: >> On 12 June 2011 20:23, Benson Margulies <[email protected]> wrote: >>> I think I've written a unit test for the contract of this function as >>> written in the javadoc, but it fails. The intersection function >>> returns an empty collection when the inputs most definitely have a >>> non-null intersection. What am I missing? >>> >>> @SuppressWarnings( "rawtypes" ) >>> @Test >>> public void testIntersection() throws Exception { >>> Collection<String> c1 = new ArrayList<String>(); >>> Collection<String> c2 = new ArrayList<String>(); >>> /* >>> * An exhaustive black box test here >>> * would involve generating a great deal of data, >>> * perhaps even different sizes and collection classes. >>> */ >>> >>> c1.add("red"); >>> c1.add("blue"); >>> c1.add("green"); >>> c1.add("socialist"); >>> c1.add("red"); >>> c1.add("purple"); >>> c1.add("porpoise"); >>> c1.add("green"); >>> c1.add("blue"); >>> c1.add("gray"); >>> >>> c1.add("blue"); >>> c1.add("12"); >>> c1.add("15"); >>> c1.add("blue"); >>> c1.add("porpoise"); >>> c1.add("33.3"); >>> c1.add("jabberwock"); >>> >>> Multiset<String> correct = HashMultiset.create(); >>> correct.add( "blue" ); >>> correct.add( "blue" ); >>> correct.add( " porpoise "); >>> >>> @SuppressWarnings( "unchecked" ) >>> Collection<String> res = CollectionUtils.intersection( c1, c2 ); >>> Multiset<String> actual = HashMultiset.create(); >>> actual.addAll(res); >>> assertEquals( correct, actual ); >> >> I hate the bog standard assertEquals on collections... if you'd used >> the new style assertThat( actual, ... ) with the appropriate matcher >> you'd have better debug info ;-) >> >>> >>> } >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
