Je souhaite pouvoir définir une variable, puis utiliser cette variable dans la méthode respond() dans la fonction module.run(). J'ai ce code dans mon il():Utilisation de variables dans la fonction mock httpBackend
var testValue=randomValue(); // suffice to say, a random value generator
var httpBackendMock = function() {
angular.module('httpBackendMock', ['ngMockE2E', 'name.of.app'])
.run(function($httpBackend) {
$httpBackend.whenPOST(/.*\/api\/data/).respond(function(method, url, data, headers) {
return [200, '<?xml version="1.0" encoding="UTF-8" standalone="yes"?> \
<data>'+testValue+'</data>', {}];
});
....
Mais la variable testValue
définie ci-dessus l'objet httpBackendMock
n'est pas visible à l'intérieur de la fonction run() du tout, mais sera « non définie ». D'après ce que je comprends, les variables définies par 'var' dans JS sont disponibles pour le code à portée interne, mais ce n'est pas le cas ici. Y at-il un moyen d'obtenir des variables à l'intérieur?
'httpBackendMock' est pas un objet. C'est une fonction. S'il vous plaît, montrez ce qui se passe avec. Si elle est exécutée avec 'browser.executeScript (httpBackendMock)', cela ne fonctionnera évidemment pas, car la portée de la fonction externe s'exécute dans le noeud et la portée de la fonction interne s'exécute dans le navigateur. – estus
@estus Il provient de https://docs.angularjs.org/api/ngMockE2E/service/$httpBackend. Je l'ai tagué avec ngmocke2e parce que j'ai probablement besoin de gens qui connaissent ce framework. –
Il n'y a aucune mention de la fonction 'httpBackendMock' dans le lien que vous avez posté. S'il vous plaît, montrez comment cette fonction est appelée. – estus