J'utilise le framework Protractor pour tester mon application angulaire.
Puis-je vérifier l'état angulaire dans le test e2e?
Bien sûr, l'idée est d'utiliser browser.executeAsyncScript()
vers:
ng-app
angular.element
et obtenir l'instance de l' injector
$state
$state.current.name
pour obtenir le nom de l'état actuel Exemple de test de travail à l'aide de la page de démonstration du routeur UI :
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"); }); });
Fortement inspiré de cette réponse .