首先,我们需要讨论Protractor团队和社区提出的一个难题,以实现诸如E2E测试。量角器茉莉花适应正确等待protractor.promise.defer()。promise?
我有一个包装JS类各地,因为我想添加额外的实用方法,以进一步检查ElementFinder的ElementFinder。当我回到这样的类对象的实例,我返回它:
function myFunc(){
var myElement = element(by.binding('plan.name'));
var deferred = protractor.promise.defer();
var myWrapper = new myElementWrapper(myElement);
deferred.fulfill(myWrapper);
return deferred.promise;
}
后来我在茉莉花2.1的值,用期待:
var val=myFunc();
expect(val).not.toBeNull();
根据the official documentation用量角器女王,@juliemr的expect
应该等到承诺解决。它似乎在不停地呼啸而过。 看看我的代码已经生成的承诺的实例,我看到它的类型为:goog.scope.promise.Promise
。在量角器代码中,我注意到它使用了:webdriver.promise.isPromise(res)
。 我也试过用flow.execute
打电话没有成功,并且希望避免使用一系列链接的.then
调用,因为它使测试更不可读。
会,妥善等待解决上面我的承诺与测试流程移动之前?
如果没有什么是创建由expect
量角器的味道进行严格检验承诺对象的正确方法?
我正在运行使用新的和闪亮的Protractor 2.0版本。
对不起,复制粘贴错误。正确的代码在上面。没有两个承诺。问题仍然存在。 –
我删除了我的答案的一部分。其余的依然适用,我想。 –