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