Тест транспортира для Angular: как получить точное совпадение для имени столбца

0

Я только что начал писать тест-протранс, поэтому я начинаю с этим.

У меня есть следующий угловой код, который я пытаюсь проверить:

<tr ng-repeat="identifier in contentIdentifiers">
    <td>{{identifier.contentIdentifier}}</td>
    <td>{{identifier.contentIdentifierTypeDescription}}</td>
    <td>{{identifier.licensedWebsiteIdentifier}}</td>
</tr>

где идентификатор содержимого имеет следующие значения:

contentIdentifiers = [
    {
        contentIdentifier: '123-123-1-ABC',
        contentIdentifierTypeDescription: 'DOI',
        licensedWebsiteIdentifier: 'TEST WEBSITE'
    },
    {
        contentIdentifier: 'ABC-DEF',
        contentIdentifierTypeDescription: 'ISBN',
        licensedWebsiteIdentifier: 'TEST WEBSITE'
    },
];

И это мой соответствующий фрагмент транспортира:

var identifier = element.all(by.repeater("identifier in contentIdentifiers").column("identifier.contentIdentifier"));
expect(identifier.get(0).getText()).toEqual("123-123-1-ABC");
expect(identifier.get(1).getText()).toEqual("ABC-DEF");

Для чего я получаю ошибку: ожидаемый "DOI" равен "ABC-DEF".

Если я изменю его на:

expect(identifier.get(2).getText()).toEqual("ABC-DEF");

то он проходит.

Из этого я думаю, что проблема заключается в том, что столбец ("identifier.contentIdentifier") также соответствует "contentIdentifierTypeDescription".

Эти данные поступают с сервера, и я не могу изменить это ради теста. Поэтому я хотел бы, чтобы решение получило список только нужного столбца. Любые параметры для получения точного имени столбца совпадают?

Теги:
protractor

2 ответа

0
Лучший ответ

Я обнаружил, что следующие работы:

var identifier = element.all(by.repeater("identifier in contentIdentifiers"))
                        .all(by.exactBinding("identifier.contentIdentifier"))
expect(identifier.get(0).getText()).toEqual("123-123-1-ABC");
expect(identifier.get(1).getText()).toEqual("ABC-DEF");

Его синтаксис не.column, но, похоже, он ведет себя одинаково и дает ожидаемый результат.

1

Это делается с помощью find.exactRepeater finder. Звучит немного странно, что он изменяет поведение последующего метода column но он это делает.

  • 0
    Я пробовал это, но это не сработало

Ещё вопросы

Сообщество Overcoder
Наверх
Меню