2015-05-06 2 views
1

У меня возникли проблемы, когда я пытаюсь выполнить итерацию с помощью транспортира. Это мой код:Как использовать итератор с помощью транспортира?

var accountNumber = 2; 
var accountsInfo = [{name: 'Hugo Marin', bank: 'Banco Capital', accountNumber: '43543'}, 
        {name: 'Hugo Marin', bank: 'Banco de Loja', accountNumber: '12345'}]; 
var accounts = element.all(by.repeater('bankAccount in bankPersonCtrl.otherBanksAccounts')); 
expect(accounts.count()).toBe(accountNumber); 

for (var i = 0; i < accountNumber; i++) { 
    accounts.get(i).getText().then(function(text) { 
     text = text.split('\n'); 
     var name = text[0]; 
     var bank = text[1]; 
     var accountNumber = text[2]; 
     console.log('i is: ' + i); 
     expect(name).toEqual(accountsInfo[i].name); 
     expect(bank).toEqual(accountsInfo[i].bank); 
     expect(accountNumber).toEqual(accountsInfo[i].accountNumber); 
    }); 
} 

Я думаю, что логика верна, но я получаю

Failed: Cannot read property 'name' of undefined 

Кроме того, вместо того, чтобы в console.log('i is:' + i); ==>i is: 0, я получаю i is: 2 ,

Что я пытался сделать, это получить каждый элемент в ретрансляторе, поэтому я могу сравнить текст, который у них есть.

ответ

2

После прочтения документации транспортир, это решить мою проблему:

var accountNumber = 2; 
var accountsInfo = [{name: 'Hugo Marin', bank: 'Banco Capital', accountNumber: '43543'}, 
        {name: 'Hugo Marin', bank: 'Banco de Loja', accountNumber: '12345'}]; 
var accounts = element.all(by.repeater('bankAccount in bankPersonCtrl.otherBanksAccounts')); 
expect(accounts.count()).toBe(accountNumber); 

accounts.each(function(element, index) { 
    element.getText().then(function(text) { 
      text = text.split('\n'); 
      expect(text[0]).toEqual(accountsInfo[index].name); 
      expect(text[1]).toEqual(accountsInfo[index].bank); 
      expect(text[2]).toEqual(accountsInfo[index].accountNumber); 
      }); 
    }); 

Использование каждого было решение, потому что я могу иметь индекс для каждого элемента.

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