Tôi cần kiểm tra Bộ điều khiển sử dụng $routeParams
để xác định thao tác đó. Có lẽ nó là một vấn đề thử nghiệm, hoặc là sai cách tôi đã viết bộ điều khiển, vì vậy bây giờ tôi không thể viết một bài kiểm tra.Góc Kiểm tra bộ điều khiển sử dụng RouteParams
Đây là bộ điều khiển của tôi
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;
}
});
Về cơ bản tôi chỉ muốn tải một nguồn lực nếu một id được cung cấp là $routeParams
, nếu không tạo ra một nguồn tài nguyên có sản phẩm nào.
Và đây là bài kiểm tra:
'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({});
});
});
Khi tôi chạy grunt test
nghiệp trả lời:
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)
Tôi wonering thế nào để biết nghiệp để thay đổi $routeParams.id
trước một thử nghiệm để chạy, và gán một giá trị khác nhau trong hai thử nghiệm khác nhau (tôi cần đặt giá trị đó thành giá trị rỗng trong giá trị đầu tiên và giá trị khác).
Mọi trợ giúp đều được đánh giá cao.
Cảm ơn, Matt.
Các bạn đã thử gán một giá trị cho '$ routeParams.id' ? –