2015-05-19 3 views
1

Я хочу проверить, что элементы, добавленные в список, имеют в них какую-то ценность. Мой текущий тест выглядит следующим образом:Тестирование элементов в списке

containerDetail.openItemAddModal(); 

element(by.css('[ng-click="form.section = \'batch\'"]')).click(); 
element(by.model(batchModel)).sendKeys(batchEntry); // we insert the batch items here 
element(by.buttonText('Add')).click(); 
expect(element.all(by.repeater('item in detail.container.items')).count()).toEqual(6); 

// Would like to test that each item has some text 
// thinking something like this:  
element.all(by.repeater('item in detail.container.items')).each(function(item) { 
    item.getText().then(function(text) { 
     expect(text).toBeTruthy(); 
    }); 
}); 

Я прибегая к помощи хороший способ сделать это, но не придумали ничего.

+0

Не могли бы вы показать что такое 'containerDetail.items()' и определить «Части ниже этого не работают»? Благодарю. – alecxe

+0

Несомненно. Обновленный вопрос с большей ясностью в отношении этих предметов – JPRO

+0

Спасибо, а как насчет нынешнего подхода? Вы получаете какие-либо ошибки? – alecxe

ответ

0

each() идеально подходит здесь. Я хотел бы использовать toBeNonEmptyString() Искателя из jasmine-matchers утверждать, есть не пустой текст:

element.all(by.repeater('item in detail.container.items')).each(function(item) { 
    expect(item.getText()).toBeNonEmptyString(); 
}); 

Кроме того, если вы знаете, ожидаемые значения, добавленные в список, вы можете использовать map():

var items = element.all(by.repeater('item in detail.container.items')).map(function (item) { 
    return item.getText(); 
}); 
expect(items).toEqual(["Value 1", "Value 2", "Value 3", "Value 4", "Value 5", "Value 6"]); 
+0

Я думаю, что это сработает, единственная проблема заключается в том, что пакет, похоже, не останавливается для ожиданий. Ошибка, которую я получаю, - «Ошибка: устаревшая ссылка на элемент: элемент не привязан к документу страницы». – JPRO

+0

@JPRO да, это потому, что страница изменилась после добавления новых элементов, и вам нужно «переделать» элементы. – alecxe

+0

Да, я думаю, моя проблема больше, чем этот тест. Ваш код выглядит неплохо, спасибо за ответ. – JPRO

Смежные вопросы