ich den grundlegenden Karma/Jasmin Setup bin mit meinem Angular Code zu testen. Hier ist mein Test:Wie löse ich ein Versprechen in einem Winkel Unit-Test
var $controllerConstructor, ctr, mockSuperheroData, scope, deferred, q;
describe('main controller', function() {
var $controllerConstructor, ctr, mockSuperheroData, scope, deferred, q;
beforeEach(inject(function($controller, $rootScope, $q) {
scope = $rootScope.$new();
$controllerConstructor = $controller;
q = $q;
mockSuperheroData = {
getSuperheroes: function() {
deferred = q.defer();
return deferred.promise;
}
};
ctr = $controllerConstructor('MainCtrl', {$scope: scope, $location: {}, superheroService: mockSuperheroData, keys: {}});
}));
it('should set the result of getResource to scope.heroes', function() {
scope.getHeroes();
expect(scope.heroes).toBe(100);
});
}
scope.getHeroes()
ruft die mockSuperheroData.getSuperheroes()
, die ein Versprechen zurückkehrt. Wie erzwinge ich das Versprechen, das, was ich will, im Komponententest zurückzugeben? Wo kann ich das Versprechen eingehen, seine Rückkehr zu verspotten?
Sie könnten wirklich einige 'var' Deklarationen verwenden ... – Bergi
Sorry, ich habe vergessen, sie zu der Frage hinzuzufügen, aber jetzt sind sie da. – jhamm