Potrzebuję przetestować kontroler, który używa $routeParams
, aby zdefiniować akcję. Być może jest to problem testowy lub jest błędny tak jak napisałem kontroler, więc teraz nie mogę napisać testu.Kątowa Przetestuj kontroler używający RouteParams
Oto mój kontroler
angular.module('cmmApp')
.controller('UserCtrl', function ($scope, $location, $routeParams, $ionicLoading, $ionicPopup, Userservice) {
//if a user id is set retrieve user information
if(typeof $routeParams.id !== 'undefined'){
var loader = $ionicLoading.show({content: "Retrieving user data"});
var user = Userservice.get({id: $routeParams.id}).$promise;
user.then(function(res){
console.log(res);
$scope.user = res.user;
loader.hide();
});
}
//else create an empty resource
else {
$scope.user = new Userservice;
}
});
Zasadniczo tylko chcę, aby załadować zasób jeśli id jest to $routeParams
, jeszcze utworzyć pusty zasobu.
A oto test:
'use strict';
describe('Controller: UserCtrl', function() {
// load the controller's module
beforeEach(module('cmmApp'));
var UserCtrl,
scope,
routeParams;
// Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $rootScope, $routeParams, Userservice) {
scope = $rootScope.$new();
routeParams = $routeParams;
UserCtrl = $controller('UserCtrl', {
$scope: scope
});
console.log("routeParams");
routeParams = {id: 8490394};
console.warn(routeParams);
}));
it('should create an epmty user', function() {
console.log(scope.user);
expect(scope.user).toEqual({});
});
});
Kiedy biegnę grunt test
karma odpowiedź:
Controller: UserCtrl should create an epmty user FAILED
Expected { } to equal { }.
Error: Expected { } to equal { }.
at null.<anonymous> (/Users/carlopasqualicchio/Sites/CMM_Ionic/test/spec/controllers/user.js:28:24)
mam wonering jak powiedzieć karmę zmienić $routeParams.id
przed testem do uruchomienia i przypisać inna wartość w dwóch różnych testach (muszę ustawić ją na null w pierwszej, a na wartość na drugą).
Każda pomoc jest doceniana.
Dzięki, Matt.
Czy próbowali przypisanie wartości do '$ routeParams.id' ? –