量角器:无法为场景编写protactor测试用例

时间:2015-12-17 08:17:07

标签: angularjs protractor

我必须使用prtractor使用AngularJS测试e2e SPA应用程序构建。 其中html如下所示:

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

有没有办法从中获取firstname和lastName? 并且控制器还有vm.Email但从不绑定到视图,如何在量角器中获取值?

单元测试案例:

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

在这种情况下,firstName和lastName等于value是两个值的连接。

1 个答案:

答案 0 :(得分:0)

在量角器测试中,您正在从用户(和浏览器)的角度测试您的应用。因此,您可以访问最终用户可访问的元素,因此可以在HTML代码中使用。这就是无法访问vm.Email的原因。

例如,您提供的,如果您想测试这些特定元素,可以通过两种方式实现。

  1. 将绑定包含在单独的标记中,例如span

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

  2. 然后使用它:

    var firstName = element(by.exactBinding('vm.firstName')).getText();
    var secondName = element(by.exactBinding('vm.lastName')).getText();
    
    1. 执行相同操作,但请使用ng-bind

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

    2. 然后使用:

      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