Javascript 什么';测试这个控制器的正确方法是什么?
我正在使用angular.js+jasmine为控制器编写一个测试 假设我有一个控制器:Javascript 什么';测试这个控制器的正确方法是什么?,javascript,angularjs,unit-testing,jasmine,karma-runner,Javascript,Angularjs,Unit Testing,Jasmine,Karma Runner,我正在使用angular.js+jasmine为控制器编写一个测试 假设我有一个控制器: angular.module('app').controller('HomePageCtrl', function($scope, Homepage, posts, topics, photos, sideBar) { $scope.slide = (photos || [])[0]; $scope.posts = Homepage.posts(posts); $scope.
angular.module('app').controller('HomePageCtrl', function($scope, Homepage, posts, topics, photos, sideBar) {
$scope.slide = (photos || [])[0];
$scope.posts = Homepage.posts(posts);
$scope.topics = Homepage.topics(topics);
$scope.sideBar = sideBar;
$scope.template = '/templates/home-page.html';
});
此控制器只有作用域变量分配,没有函数。如何为该控制器编写测试?我需要检查每个变量是否已定义?每个变量都有正确的值?您可以使用日志服务(如果这是您的意思)来测试变量是否为空
angular.module('logExample', [])
.controller('LogController', ['$scope', '$log', function($scope, $log) {
$scope.$log = $log;
$scope.message = 'Hello World!';
}]);
您可以将所有初始化逻辑放入一个公开的函数中,以便能够从测试中调用它
angular.module('app').controller('HomePageCtrl', function($scope, Homepage, posts, topics, photos, sideBar) {
$scope.activate = function () {
$scope.slide = (photos || [])[0];
$scope.posts = Homepage.posts(posts);
$scope.topics = Homepage.topics(topics);
$scope.sideBar = sideBar;
$scope.template = '/templates/home-page.html';
}
$scope.activate();
});
我正在编写一个单元测试——我不明白如何使用日志服务来测试我的控制器。