Ich versuche Protractor die addMockModule() zu verspotten einem einfachen AngularJS Modul und außer Kraft setzen, eine Variable zu verwenden.Wie angular.module ('MyModule', []) verspotten Wert() in Jasmine/Protractor
hier ist mein HTML ist:
<body ng-app="myApp">
<div ng-controller="myAppController">
Overriden module value <b>{{myValue}}</b>
</div>
<script src="/Scripts/Lib/angular/angular.js"></script>
<script src="/module.js"></script>
<script src="/controller.js"></script>
</body>
hier ist mein Controller:
var myApp = angular.module("myApp", ['myModule']);
myApp.controller("myAppController", function ($scope, myValue) {
$scope.myValue = myValue;
});
hier ist mein Modul:
var newModule = angular.module('myModule', []);
newModule.value('myValue', "oldValue");
Hier ist mein Jasmine/Protractor Code:
var mockMyModule = function() {
var newModule = angular.module('myModule', []);
newModule.value('myValue', "newMockedValue");
};
it('should override services via mock modules', function() {
ptor = protractor.getInstance();
ptor.ignoreSynchronization = true;
browser.addMockModule('portfolioDataAccessMod', mockMyModule);
browser.get('http://localhost:57627/page1.html');
expect(element(by.binding("myValue")).getText()).toBe("newMockedValue");
});
Ergebnisse:
Failures:
1) End-to-End-Test in/Asset Allocation/Index sollte Dienste außer Kraft setzen via mock modules Nachricht: Erwartet 'oldValue' als 'newMockedValue'.
Was ist los?
Alle Beispiele, die ich bisher gefunden habe, sind HTTP-Aufrufe zu überschreiben, aber alles, was ich will, ist ein sehr einfaches Modul mit einer einfachen Variablen zu verspotten. Ist es möglich, in Winkelmesser zu tun?
Die Idee dahinter ist, Konstanten für Live-Umgebung zu haben, und sie Test nur für Winkelmesser ändern. –