在量角器中测试承诺

时间:2016-12-06 04:37:27

标签: javascript angularjs jasmine protractor

我是角度/量角器世界的新手,所以这是一个非常基本的问题。根据这个spec,我们可以为下面的web元素编写量角器测试:

var foo = element(by.id('foo'));
expect(foo.getText()).toEqual('Inner text');

但是,foo.getText()返回一个promise类型,而不是一个字符串,怎么能“期望”将返回的promise对象与另一个字符串进行比较?有没有解释这种用法的文档?

1 个答案:

答案 0 :(得分:4)

是的,expect(),如果与Protractor一起使用,就会理解承诺 - 它会在做出期望之前解决承诺使编写量角器测试变得更容易。这实际上是在Protractor所依赖的单独项目中完成的 - jasminewd2,其中patches jasmine's expect() to resolve the promiseswraps jasmine's describe(), it() and other test control block functions将在控制流中执行。< / p>

请注意,它还支持both sides of the assertion上的承诺,您可以这样做,例如:

let elementText1 = $('.ng-scope p').getText();
let elementText2 = $('#transformedtext>h4').getText();

expect(elementText1).toEqual(elementText2);

Protractor文档而言,部分描述了here