0
ile söz veriyor İç içe geçmiş sözleri test etmek istiyorum ve bunun nasıl gideceğinden emin değilim.İç içe geçmiş AngularJS, Jasmine
Böyle bir senaryoyu test etmeye nasıl başlarım? Her Eğer $rootScope.$apply()
aramak zorunda söz sonra
describe('serviceA spec', function() {
var $rootScope, $state, serviceA, serviceB;
beforeEach(function() {
$state = {
go: function(){}
}
serviceB = {
create: {},
doSomething: {},
doSomethingElse: {}
}
module('app', function($provide){
$provide.value('serviceB', serviceB);
$provide.value('$state', $state);
});
inject(function (_$rootScope_, _serviceA_) {
serviceA =_serviceA_;
$rootScope = _$rootScope_;
});
});
it('should create', function(){
var newId = "555";
spyOn($state, 'go').and.callFake(function() {
var deferred = $q.defer();
deferred.resolve({});
return deferred.promise;
});
spyOn(serviceB, 'create').and.callFake(function() {
var deferred = $q.defer();
deferred.resolve({ id: newId });
return deferred.promise;
});
spyOn(serviceB, 'doSomething');
spyOn(serviceB, 'doSomethingElse');
serviceA.create();
expect(serviceB, 'create').toHaveBeenCalled();
expect($state, 'go').toHaveBeenCalledWith("app.list", { id: newId });
expect(serviceB, 'doSomething').toHaveBeenCalled();
expect(serviceB, 'doSomethingElse').toHaveBeenCalled();
$rootScope.$digest();
});
});
herhangi bir öneriniz çok