メソッド コントローラをテストしようとすると、いくつかの問題が発生します。だから、ここにcontactCtrlという名前の私のコントローラーがあります
'use strict';
(function () {
angular.module('routerApp').controller('ContactController', function ($scope, contactRepository) {
$scope.saveContact = function(selectedContact) {
$scope.errors = [];
contactRepository.saveContactInfo(selectedContact);
$scope.contactSelected = false;
};
$scope.cancel = function() {
$scope.contactSelected = false;
$scope.selectedContact = null;
};
$scope.selectContact = function(contact) {
$scope.contactSelected = true;
$scope.selectedContact = contact;
};
});
}());
これが私のcontactRepositoryです
'use strict';
(function () {
angular.module('routerApp').factory('contactRepository', function() {
return {
saveContactInfo: function (selectedContact) {
console.log(selectedContact);
}
};
});
}());
そして、ここに contactCtrl.spec.js という名前の私の仕様ファイルがあります
describe('Controller',function() {
var scope,contactCtrl;
beforeEach(module('routerApp'));
beforeEach(inject(function ($rootScope, $controller) {
scope = $rootScope.$new();
contactCtrl = $controller('ContactController',{$scope:scope});
}));
describe('ContactController', function() {
it('save method should have contactSelected false', function() {
expect(contactCtrl.contactSelected).toBe(false);
});
});
})
save メソッドを実行したときに実際に機能するかどうかをテストしたいと思います。