我必须使用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是两个值的连接。
答案 0 :(得分:0)
在量角器测试中,您正在从用户(和浏览器)的角度测试您的应用。因此,您可以访问最终用户可访问的元素,因此可以在HTML代码中使用。这就是无法访问vm.Email的原因。
例如,您提供的,如果您想测试这些特定元素,可以通过两种方式实现。
将绑定包含在单独的标记中,例如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。