AssertJ: способ проверить значение поля объекта, если оно содержит определенный шаблон (регулярное выражение)

Привет, гуру Java и гуру AssertJ,

Я хотел бы спросить, есть ли в AssertJ способ проверить, существует ли объект из списка объектов (например, ArrayList<TestObject> listOfTestObjects). Где значение поля этого конкретного объекта (возвращаемое методом получения) соответствует шаблону или шаблону регулярного выражения.

Для получения дополнительных сведений см. Пример ниже:

class TestObject {
    private String stringValue;

    public String getValue() {
       return this.stringValue;
    }
    public void setValue(String newStringValue) {
        this.stringValue = newStringValue;
    }

}

ArrayList<TestObject> listOfTestObjects = new ArrayList<TestObject>();

// populate the list here...

assertThat(listOfTestObjects).extracting("value").containsAnElementWith("some regular expressions here...");

Обратите внимание, что я не ожидаю "

...containsAnElementWith("some regular expressions here...");"

быть существующим методом (который на самом деле может быть лучше, если он есть), но это могут быть функции / методы в assertj или junit, которые я могу использовать для упрощения автоматизации модульного тестирования, кроме цикла через один из них, а затем делает матч.


Ура


person Artanis Zeratul    schedule 26.11.2019    source источник


Ответы (1)


assertThat(listOfTestObjects).anyMatch(o -> o.getValue().matches(regex));

http://joel-costigliola.github.io/assertj/core-8/api/org/assertj/core/api/AbstractIterableAssert.html#anyMatch-java.util.function.Predicate-

person JB Nizet    schedule 26.11.2019