Est-il possible d'accéder à angular dans vos tests de rapporteur comme vous le faites dans les tests unitaires?
Le cas d'utilisation est que j'ai un service qui transforme le texte et je veux accéder à ce service pour transformer certaines données dans le script de test réel. Je sais qu'il y a la méthode addMockModule
dans le rapporteur, mais je ne sais pas comment l'utiliser à cette fin.
J'apprécierais toute aide!
Il existe une fonction appelée assess (). Recherchez un élément dans le dom, puis exécutez l'expression.
Par exemple. Si vous souhaitez compter le nombre de todos sur le site Web http://angularjs.org/ (sous Ajouter un certain contrôle), procédez comme suit:
Ouvrez l'explorateur d'éléments dans le rapporteur
./node_modules/protractor/bin/elementexplorer.js
browser.get('http://angularjs.org/')
element(by.model('todoText')).evaluate('todos.length').
then(function(count) {
console.log(count)
});
Cela devrait vous donner un 2
Vous pouvez également utiliser executeAsyncScript
browser.executeAsyncScript(function(callback) {
// Here we use document.body, but your app may live under a different
// element.
var service = angular.element(document.body)
.injector()
.get('myService');
service.query({}, function(data) {
callback(data);
});
}).then(function (output) {
console.log(output);
});
Voir un exemple: https://github.com/andresdominguez/protractor-meetup/blob/master/test/e2e/api-helper.js