2015-12-17 86 views
0

我必須使用prtractor來測試e2e SPA應用程序的構建與AngularJS。 其中HTML看起來象下面這樣:量角器:無法爲場景編寫protactor測試用例

<h4 class="list-group-item-heading">{{vm.firstName}} {{vm.lastName}}</h4> 

有沒有什麼辦法讓名字和姓氏出來的嗎? 而且控制器有vm.Email但從未綁定到視圖,如何獲得量角器中的值?

單元測試用例:

var firstName = element(by.binding('vm.item.firstName')).getText(); 
var secondName = element(by.binding('vm.item.lastName')).getText(); 

在這種情況下firstName和lastName帶有值以下是兩個值中的級聯。

回答

0

在量角器測試中,您正在從用戶(和瀏覽器)的角度測試您的應用程序。因此,您可以訪問最終用戶可以訪問的元素,這在HTML代碼中可用。這就是爲什麼vm.Email不可訪問。

舉例來說,如果您想要測試這些特定元素,可以通過兩種方式來實現。

  1. 將綁定放在單獨的標記中,例如, span

    <span>{{vm.firstName}}</span> <span>{{vm.lastName}}</span>

,然後使用此:

var firstName = element(by.exactBinding('vm.firstName')).getText(); 
var secondName = element(by.exactBinding('vm.lastName')).getText(); 
  • 照此,而是使用ng-bind

    <h4 class="list-group-item-heading"><span ng-bind="vm.firstName"></span> <span ng-bind="vm.lastName"></span></h4>

  • ,然後使用:

    var firstName = element(by.exactBinding('vm.firstName')).getText(); 
    var secondName = element(by.exactBinding('vm.lastName')).getText(); 
    

    或本:

    var firstName = element(by.binding('vm.firstName')).getText(); 
    var secondName = element(by.binding('vm.lastName')).getText(); 
    

    檢查文檔here

    +0

    謝謝你會建議相同.. :) – Dreamweaver

    相關問題