2015-04-20 3 views
0

Я использую Жасмин для запуска Углового модульного теста.Жасмин единица измерения

Я пытаюсь получить идентификатор routeParams как часть моего теста, но просто не знаю. Есть что-то, чего я не хватает?

Благодаря

beforeEach(inject(function($controller, $rootScope,_$routeParams_, _$q_){ 
    scope = $rootScope.$new(); 
    rootScope = $rootScope; 
    rootScope.go = jasmine.createSpy(); 
    routeParams = _$routeParams_; 
    $q = _$q_; 

    deliveryId = '7666'; 
    eanScanned = '5012663020351'; 
    confirmedList = _.findWhere(data, {'id': deliveryId}); 

    controller = TestHelper.createController('GoodsReceiptConfirmController', { 
     $rootScope: rootScope, 
     $scope: scope, 
     $routeParams : { 
      'id': '7666', 
     }, 
     GoodsReceiptService : GoodsReceiptService 

    }); 
})); 


describe('on confirmation page open', function(){ 

    it('if has routeParams. display said delivery and intReceipts', function(){ 
     console.log(routeParams.id); 
     //expect(scope.routeParams.id).toBeDefined(); 
     //GoodsReceiptService.getDelivery(); 


     //expect(scope._initReceipts).toHaveBeenCalled(); 
     //expect(scope._initReceipts).toHaveBeenCalledWith(scope.delivery); 
    }); 
}); 

ответ

1

Вы никогда не инициализирует идентификатор routeParams в тесте. Вместо этого, вы создаете другой объект и передавая этот новый объект к контроллеру:

// this stores the actual, angular-created service into the routeParams variable 
routeParams = _$routeParams_; 

// this passes a "fake" object literal containing an id to the controller function. 
controller = TestHelper.createController('GoodsReceiptConfirmController', { 
    $routeParams : { 
     'id': '7666', 
    }, 
    //... 
}); 

Если вы хотите передать действительную службу $ routeParams к контроллеру, и хотят эту услугу, чтобы иметь идентификатор, все, что вам нужно is

routeParams = _$routeParams_; 
routeParams.id = '7666'; 
controller = TestHelper.createController('GoodsReceiptConfirmController', { 
    $rootScope: rootScope, 
    $scope: scope, 
    GoodsReceiptService : GoodsReceiptService 
}); 
Смежные вопросы