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();
}
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