这就是方法。
List<User> someMethod() {
User user[] = new Users[3];
user[0] = new User();
user[0].setImage(new Image(Constants.HOME));
user[1] = new User();
user[1].setImage(new Image(Constants.NOT_HOME));
user[2] = new User();
user[2].setImage(new Image(Constants.HOME));
return Arrays.asList(user);
}
如何测试上述代码的测试。我需要验证一些用户在HOME上有图像。
我可以尝试重新构建整个用户列表并进行比较。但是,我不想这样做。
我尝试过这样的事情,
assertThat(Optional.of(service.someMethod())).hasValueSatisfying((a)->a.stream().allMatch((b)->b.getImage().getImageUrl().equals(Constants.HOME)));
在此上下文中断言始终为true,因为hasValueSatisfying
使用Consumer<T>
作为参数。但是,我想以下列方式使用 - AssertJ way
我能以某种方式使用Hamcrest来解决这个问题吗?
答案 0 :(得分:2)
我会使用AssertJ extracting feature:
assertThat(users).extracting(user -> getImage().getImageUrl())
.contains(Constants.HOME)
我假设用户是List<User>
,而不是List<User>
的可选项。