Hamcrest 1.3 में से कोई भी नहीं है, लेकिन आप बहुत आसानी से अपने खुद बना सकते हैं:
public class IsMapWithSize<K, V> extends FeatureMatcher<Map<? extends K, ? extends V>, Integer> {
public IsMapWithSize(Matcher<? super Integer> sizeMatcher) {
super(sizeMatcher, "a map with size", "map size");
}
@Override
protected Integer featureValueOf(Map<? extends K, ? extends V> actual) {
return actual.size();
}
/**
* Creates a matcher for {@link java.util.Map}s that matches when the
* <code>size()</code> method returns a value that satisfies the specified
* matcher.
* <p/>
* For example:
*
* <pre>
* Map<String, Integer> map = new HashMap<>();
* map.put("key", 1);
* assertThat(map, isMapWithSize(equalTo(1)));
* </pre>
*
* @param sizeMatcher
* a matcher for the size of an examined {@link java.util.Map}
*/
@Factory
public static <K, V> Matcher<Map<? extends K, ? extends V>> isMapWithSize(Matcher<? super Integer> sizeMatcher) {
return new IsMapWithSize<K, V>(sizeMatcher);
}
/**
* Creates a matcher for {@link java.util.Map}s that matches when the
* <code>size()</code> method returns a value equal to the specified
* <code>size</code>.
* <p/>
* For example:
*
* <pre>
* Map<String, Integer> map = new HashMap<>();
* map.put("key", 1);
* assertThat(map, isMapWithSize(1));
* </pre>
*
* @param size
* the expected size of an examined {@link java.util.Map}
*/
@Factory
public static <K, V> Matcher<Map<? extends K, ? extends V>> isMapWithSize(int size) {
Matcher<? super Integer> matcher = equalTo(size);
return IsMapWithSize.<K, V> isMapWithSize(matcher);
}
}
परीक्षण:
Map<String, Integer> map = new HashMap<>();
map.put("key", 1);
assertThat(map, isMapWithSize(1));
assertThat(map, isMapWithSize(equalTo(1)));
सच अधिक एक एक Mockito सवाल से Hamcrest सवाल। तो आप Hamcrest दस्तावेज की जांच कर सकते हैं। यदि आप चाहते हैं कि matcher वहाँ नहीं है (और मुझे विश्वास है कि यह नहीं है), तो आप हमेशा अपना खुद का लिख सकते हैं। –
एंट्रीसेट() विधि का उपयोग करें और फिर आप आकार के साथ सत्यापित कर सकते हैं। – Bhokal