gpt4 book ai didi

junit - Hamcrest - Matchers.hasProperty : how to check if a List of objects contains an object with a concrete value

转载 作者:行者123 更新时间:2023-12-04 06:07:05 26 4
gpt4 key购买 nike

我对 Hamcrest 有以下问题:
我有一份员工名单

List<Employee> employees = hamcrest.getEmployees();

在哪里:
public class Employee {

private String name;
private int age;
private double salary;

public Employee(String name, int age, double salary) {
super();
this.name = name;
this.age = age;
this.salary = salary;
}

和:
public List<Employee> getEmployees() {
Employee e1 = new Employee("Adam", 39, 18000);
Employee e2 = new Employee("Jola", 26, 8000);
Employee e3 = new Employee("Kamil", 64, 7700);
Employee e4 = new Employee("Mateusz", 27, 37000);
Employee e5 = new Employee("Joanna", 31, 12700);
Employee e6 = null;
return Arrays.asList(e1, e2, e3, e4, e5, e6);
}

我想检查我的列表中是否有 name = Mateusz 的对象。
我以这种方式尝试过,但出了点问题:
@Test
public void testListOfObjectsContains() {
List<Employee> employees = hamcrest.getEmployees();
assertThat(employees, Matchers.anyOf(Matchers.containsInAnyOrder(Matchers.hasProperty("name", is("Mateusz")), Matchers.hasProperty("age", is(27)))));
}

如何使用 Hamcrest 进行检查?
我花了2个多小时在互联网上找到解决方案,但不幸的是没有成功。

非常感谢您提前!

最佳答案

您需要匹配器 hasItem

assertThat(
x,
hasItem(allOf(
Matchers.<Employee>hasProperty("name", is("Mateusz")),
Matchers.<Employee>hasProperty("age", is(27))
))
);

关于junit - Hamcrest - Matchers.hasProperty : how to check if a List of objects contains an object with a concrete value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50182922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com