В настоящее время я пишу несколько тестов e2e для моего скромного приложения Angular с помощью Protractor.
Мое приложение работает нормально, модульные тесты проходят все, e2e тоже используется... до этого:
appE2ESpec.js
describe('adding an item', function() {
var items,
addItemButton,
startCount;
beforeEach(function() {
items = element.all(by.css('li.item'));
addItemButton = element(by.id('addItemButton'));
startCount = items.count();
});
it('should display a new item in list', function() {
addItemButton.click();
expect(items.count()).toEqual(startCount+1);
});
});
Вот как я бы написал свой тест, но
Проблема заключается в следующем:, что items.count() возвращает обещание, я знаю это, но мне не удается заставить Protractor разрешить его. Поэтому я получаю следующее:
Failures:
1) myApp adding an item should display a new item in list
Message:
Expected 6 to equal '[object Object]1'.
Что я пробовал:
items.count().then(function(count) {
startCount = count;
//console.log(startCount) --> "6" Perfect!
});
Но получился тот же результат в конце... Я не могу поместить expect
в then
, я тоже об этом думал.
- Я искал в репозитории Protractor GitHub проблемы, StackOverflow и группу Google AngularJs.
Приложение:
console.log(startCount)
выводит это:
{ then: [Function: then],
cancel: [Function: cancel],
isPending: [Function: isPending] }
Я мог бы написать .toEqual(6)
, но я не хочу переписывать свой тест каждый раз, когда мне нужно изменить состояние запуска приложения.
Любая идея? Спасибо заранее!