【发布时间】:2016-03-01 17:20:34
【问题描述】:
我正在尝试为我们的 Angular 应用程序设置端到端测试,但遇到了一些障碍。
一个是自举。我们正在使用这个库:angular-deferred-bootstrap 来引导我们的应用程序。这个库允许我们进行 http 调用,然后将其结果注入我们的应用程序(如角度 value())。然后它调用bootstrap 函数以实际使用角度引导应用程序。我希望在此提升完成后运行测试。
这是我到目前为止所做的
describe('navigation should', function () {
beforeEach(function () {
// load homepage
browser.get('/');
}, 10000);
it('show side navigation', function () {
browser.wait(function () {
var deferred = protractor.promise.defer();
element(by.css('body.deferred-bootstrap-loading')).isPresent()
.then(function (isPresent) {
deferred.fulfill(!isPresent);
});
return deferred.promise;
});
});
});
库方便地将deferred-bootstrap-loading 类放在body 上。我正在等到它被删除。
问题是有时我收到错误Error while waiting for Protractor to sync with the page: "[ng:test] no injector found for element argument to getTestability\nhttp://errors.angularjs.org/1.4.8/ng/test"。
似乎比它(测试)通过更频繁地产生这个错误。
我不明白这里的问题是什么?量角器是否在 Angular 有机会运行之前运行?
当browser.wait 返回一个承诺时,我是否必须在回调中运行我的所有测试?
我还希望每次测试都运行这段代码(等待引导完成)。最好的组织方式是什么?
【问题讨论】:
标签: javascript angularjs protractor