Ich versuche zu testen, ob mein Array (Speicher) noch ein Element mit Jasmine bekam. Ich habe mehrere Versprechen Kette, aber ich kann nicht in die erste eingeben, nichts passiert in das Versprechen (.then).restangular mehrere Versprechen Jasmin
Dies ist mein Test:
_this.provider = provider.data;
_this.instance.additional_values.storage = [];
_this.createVolume = function (volume) {
var newvol = angular.copy(volume);
//reset input and select
angular.copy({},volume);
return _this.provider.priceStorage(newvol.kind).then(function (resp) {
...
return _this.provider.priceSnapshot();
})
.then(function (resp) {
_this.instance.additional_values.storage.push(newvol);
});
};
Als ich console.log ctrl.provider.priceStorage() ich diese haben
d:
beforeEach(inject(function ($state, $controller, $rootScope, $q) { state = $state.get('app.provision_requests_create'); ctrl = $controller('ProvisionRequestsCreateCtrl', { $scope: $rootScope.$new(), provider: { data: { priceStorage: function() { return $q(function (resolve) { resolve({ data: [] }); }); } } } }); })); describe("should test add Volume", function() { it('should remove volume properly ', function() { ctrl.createVolume(volume); ctrl.provider.priceStorage().then(function(){ console.log('ok'); }); });
Diese meine Funktion ist {$$ state: Objekt {Status: 1, Wert: Objekt {Daten: ...}}}
Als ich ctrl.createVolume() console.log, ich habe diesen
d {$$ Zustand: Object {status: 0}}
danke, aber ich weiß, dass das Problem ist nichts passiert in meinem Versprechen, auch wenn ich schreibe was auch immer dies erwartet (Ergebnis) .toEqual ('okokok'); Ich habe kein Ergebnis, keinen Fehler, nichts ... – user3703539
@ user3703539 Verwenden Sie $ rootScope. $ Digest(), um $ q-Ketten in Spezifikationen auszulösen. – estus
Es ist richtig $ rootScope. $ Digest(); muss benutzt werden! – user3703539