我认为这很容易但是有人能告诉我如何测试HashMap以查看它是否在JUnit中有一些价值?
assertThat(myMap, ??);
我尝试过类似的事情:
assertThat(myMap, hasEntry("Key", notNullValue()));
...但是我无法编译它,因为我导入到hasEntry和notNullValue()是正确的。 有谁知道它们的正确导入pkg是什么?
答案 0 :(得分:2)
您在hasEntry(Matcher<? super K> keyMatcher, Matcher<? super V> valueMatcher)
之后。
底层实现位于IsMapContaining
但是,
与Hamcrest中的大多数匹配器一样,它也可以通过hamcrest-library
中的org.hamcrest.Matchers
找到。
否则,您的语法正确,Matchers
也定义notNullValue()
。
答案 1 :(得分:0)
检查密钥是否在地图中:
import static org.junit.Assert.assertTrue;
...
assertTrue(myMap.containsKey("Key"));
或者,要检查它是否具有非空值:
import static org.junit.Assert.assertNotNull;
...
assertNotNull(myMap.get("Key"));
答案 2 :(得分:0)
import static org.junit.Assert.AssertTrue;
assertTrue(myMap.containsKey("yourKey") && myMap.get("yourKey") != null)
答案 3 :(得分:0)
我不喜欢 assertTrue
方法,因为断言失败时的反馈非常有限。
可以像这样使用 assertThat
来完成:
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.hasEntry;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.notNullValue;
assertThat(myMap, hasEntry(is("Key"), notNullValue()));