AssertionError on assertThat в списке - PullRequest
1 голос
/ 13 марта 2020

Я отправляю 2 строки данных из моего файла функций огурца:

Scenario: Verify the data in the summary
    Then the 'Summary' section contains the following data:
     | Time Frame: 06/22/2016 20:47:22 UTC to 09/18/2016 17:00:53 UTC          |
     | Tabs: 47def , tr1 , e998                                                |

Я пытаюсь проверить, что данные из каждой строки моего файла объектов находятся в реальном тексте, который был вытащил со страницы:

public void sectionContainsTheFollowingData(String section, List<String> expected) {
    // text data pulled from the page is stored in 'actual'
    List<String> actual = SUMMARY.getSummaryData(section);
        for (String cell : expected) {
            assertThat(String.format("Did not find %s in data %s", cell, actual), actual.contains(cell));
        }

При выполнении этого я получаю следующую ошибку:

java.lang.AssertionError: Did not find Time Frame: 06/22/2016 20:47:22 UTC to 09/18/2016 17:00:53 UTC in data [Time Frame: 06/22/2016 20:47:22 UTC to 09/18/2016 17:00:53 UTC Tabs: 47def , tr1 , e998]

Я не уверен, почему я получаю эту ошибку. Я вижу, что «Сроки: 22.06.2016 20:47:22 UT C до 18.09.2016 17:00:53 UT C» соответствует как фактическому, так и ожидаемому. Я предполагаю, что мое утверждение ищет точное соответствие, но я не хочу точное соответствие. Мне просто нужно, чтобы текст из каждой строки таблицы данных в файле объектов находился где-то внутри фактического текста, извлеченного со страницы.

1 Ответ

2 голосов
/ 13 марта 2020

с потоками:

for (String cell : expected) {
    assertThat(String.format("Did not find %s in data %s", cell, actual), actual.stream().anyMatch(string -> string.contains(cell));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...