I väntan på David Saff’s alternative assertThat(x).y() så nöjer jag mig med:
public class EmptyMatcher extends TypeSafeMatcher<Collection < ?>> { @Override public boolean matchesSafely(Collection< ?> c) { return c.isEmpty(); } public void describeTo(Description desc) { desc.appendText("empty"); } @Factory public static lt;T> Matcher< ? super Collection<?>> isEmpty() { return new EmptyMatcher(); } }
som gör att man kan skriva trevlig enkelt läsbar kod, t ex:
@Test public void filteringAnEmptyListReturnsAnEmptyList() { List anEmptyList = new ArrayList(); List result = testee.filter(emptyList()); assertThat(result, isEmpty()); // men helst: assertThat(result).isEmpty(); }
Related posts:
Koden fulas till ordentligt av WordPress (försöker bland annat balansera upp
taggar …) Koden är skamlöst likt http://happygiraffe.net/blog/2008/07/26/assertthat/ :)
dotmess kallar Saff sitt API som verkar vågas visas upp i dagsljus nu för tiden: http://saffgreenbar.blogspot.com/2010/03/dotmesh-free-assertions-from-domain.html