【发布时间】:2015-12-29 08:18:26
【问题描述】:
我正在使用量角器框架来测试我的 Angular 应用程序。
我可以在 e2e 测试中检查角度状态吗?
【问题讨论】:
标签: javascript angularjs angular-ui-router protractor state
我正在使用量角器框架来测试我的 Angular 应用程序。
我可以在 e2e 测试中检查角度状态吗?
【问题讨论】:
标签: javascript angularjs angular-ui-router protractor state
当然,我们的想法是使用browser.executeAsyncScript() 来:
ng-app的元素angular.element并获取injector实例$state service
$state.current.name 获取当前状态的名称
使用UI router demo page 的示例工作测试:
describe("Current Angular UI router state", function () {
beforeEach(function () {
browser.get("https://angular-ui.github.io/ui-router/sample/#/");
});
it("should get the current state", function (){
var currentStateName = browser.executeAsyncScript(function(callback) {
var el = document.querySelector("html"); // ng-app is defined on html element in this case
var injector = angular.element(el).injector();
var service = injector.get('$state');
callback(service.current.name);
});
expect(currentStateName).toEqual("home");
});
});
深受this answer 的启发。
【讨论】: