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