本文介绍了量角器与递延boostrapping的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图建立终端到终端的测试我们的角度应用程序,但跨越一些障碍正在到来。
一是引导。我们使用这个库:来引导我们的应用程序。这个库使我们能够HTTP调用的结果,那么它的注入我们的应用程序(如角值()
)。然后,它调用引导
函数实际上角度引导的应用程序。我想测试运行后,这个boostrapping就完成了。
这是我迄今所做
描述('导航应该',函数(){
beforeEach(函数(){
//加载网页
browser.get('/');
},10000); 它('秀侧面导航',函数(){
browser.wait(函数(){
VAR递延= protractor.promise.defer(); 元素(by.css('body.deferred-引导装载'))是present()
。然后(功能(为present){
deferred.fulfill(!是present);
}); 返回deferred.promise;
});
});
});
该库方便地将一个延期引导加载
类的体。我等待直到被删除。
问题是,有时我得到的错误错误等待量角器与网页同步:[NG:测试]没有注入发现元素参数getTestability \\ nhttp://errors.angularjs .ORG / 1.4.8 / NG /测试
。
这似乎更经常产生这种错误比它(测试)合格。
我不明白的问题是什么吗?是量角器角运行前有机会跑?
请问我要运行我的回调为 browser.wait
中的所有测试返回一个承诺?
此外,我想这code为每一个试运行(等待自举完成)。什么是组织最好的方法?
解决方案
我会尝试做的是关闭同步,直到预期的条件满足的:
beforeEach(函数(){
VAR EC = protractor.ExpectedConditions; browser.ignoreSynchronization = TRUE;
browser.get('/'); //等待延迟引导身体不是present
VAR体= $(body.deferred-引导加载);
browser.wait(EC.stalenessOf(体),10000)。然后(函数(){
browser.ignoreSynchronization = FALSE;
});
browser.waitForAngular(); //可能并不需要
});
Please see:
这篇关于量角器与递延boostrapping的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!