使用Hamcrest(Java 8)检查特定的地图值属性(谓词)

时间:2018-09-30 10:28:58

标签: junit4 hamcrest assertj

使用AssertJ,我可以检查Map是否具有引用值满足特定4的键:

Consumer

是否可以使用Hamcrest检查给定键的特定@AllArgsConstructor @Getter public static class User { private Long id; private String name; } @Test public void x() { Map<String, User> map = new HashMap<>(); map.put("key", new User(123, "Random Hacker")); Assertions.assertThat(map).hasEntrySatisfying("key", __ -> { Assertions.assertThat(__.getName()).isEqualTo("Random Hacker"); }); } 值的条件(以及键/值的存在)?

注意 Map已从3.6.0版(2016-11-21)添加到AspectJ。

1 个答案:

答案 0 :(得分:1)

根据Using Hamcrest for testing - Tutorial,hamcrest中提供了hasEntry方法。

其用法如such

In file included from DoSomething.cpp:8:0:
library.h:19:10: fatal error: header1.h: No such file or directory
 #include <header1.h>

如果您需要更通用的匹配器,可以使用this方法:

示例:

org.hamcrest.MatcherAssert.assertThat(myMap, org.hamcrest.Matchers.hasEntry("bar", "foo"))

可以使用Hamcrest的许多匹配器中的任何一个或您自己的自定义匹配器来代替“ equalTo”。