CustomMatchers.java 文件源码

java
阅读 44 收藏 0 点赞 0 评论 0

项目:client_java 作者:
public static <T> Matcher<Iterable<? super T>> exactlyNItems(final int n, final Matcher<? super T> elementMatcher) {
  return new IsCollectionContaining<T>(elementMatcher) {
    @Override
    protected boolean matchesSafely(Iterable<? super T> collection, Description mismatchDescription) {
      int count = 0;
      boolean isPastFirst = false;

      for (Object item : collection) {

        if (elementMatcher.matches(item)) {
          count++;
        }
        if (isPastFirst) {
          mismatchDescription.appendText(", ");
        }
        elementMatcher.describeMismatch(item, mismatchDescription);
        isPastFirst = true;
      }

      if (count != n) {
        mismatchDescription.appendText(". Expected exactly " + n + " but got " + count);
      }
      return count == n;
    }
  };
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号