Bir denetleyicinin başlatılmasında çalıştırılan bir işlevi görmeye çalışıyorum, ancak test her zaman başarısız oldu. $scope.$digest()
numaralı çalıştırmayı deniyorum ve bu çalışmıyor, Ancak konsolda, işlevin çağrıldığını görüyorum.Açısal Test: Bir denetleyicinin başlatılmasında çalıştırılan bir işlev casusluk
Bunu anlayamıyorum, Birisi bana bunun neden çalışmadığını açıklayabilir mi?
Codepen Örnek: Kontrolör başlatır casus gerçek işlevi tarafından geçersiz olur çünkü http://codepen.io/gpincheiraa/pen/KzZNby
Kontrolör
function Controller($stateParams, $scope){
$scope.requestAuthorization = requestAuthorization;
if ($stateParams.requestAuthorization === true) {
console.log('$stateParams.requestAuthorization');
$scope.requestAuthorization();
}
function requestAuthorization() {
console.log('requestAuthorization()');
}
}
Test
describe('AppCtrl', function(){
var AppCtrl, $rootScope, $scope, $stateParams;
beforeEach(module('exampleApp'));
beforeEach(inject(function($controller, _$rootScope_, _$injector_, _$stateParams_) {
$rootScope = _$rootScope_;
$scope = $rootScope.$new();
$stateParams = _$stateParams_;
$stateParams.requestAuthorization = true;
AppCtrl = $controller('AppCtrl',{
$scope: $scope,
$stateParams : $stateParams
});
spyOn($scope, 'requestAuthorization');
}));
it('$stateParams.requestAuthorization should be defined', function() {
expect($stateParams.requestAuthorization).toBeDefined();
});
it('$scope.requestAuthorization should be defined', function() {
expect($scope.requestAuthorization).toBeDefined();
});
// this test is not passing..
it('should call requestAuthorization', function() {
//$scope.$digest();
expect($scope.requestAuthorization).toHaveBeenCalled();
});
});
seni de denetleyicisi başlatmak zorunda kalacak inanıyoruz: Bunu önlemek için bir yolu denetleyicisi bu özelliğin değer atamak çalıştığında maymun yama
requestAuthorization
özelliği için özel belirleyici ile$scope
nesneyi, o casus yaratabilecek olan Test durumunun kendisi, kontrol cihazının başlatılmasından önce, daha sonra beklenen sonucu kontrol edin. – northsideknight