【发布时间】:2014-12-10 19:30:25
【问题描述】:
控制器:
function myCtrl($scope) {
$scope.firstFn = function() {
console.log('firstFn called');
$scope.test1 = 2;
};
$scope.secondFn = function() {
console.log('secondFn called');
$scope.test2 = 3;
};
(function constructor() {
console.log('Controller init.');
$scope.test1 = 1;
$scope.test2 = 2;
$scope.firstFn();
})();
};
是否可以在不执行“firstFn”的情况下为名为“secondFn”的函数编写单元测试? 是否可以模拟它或其他什么?
scope = $rootScope.$new();
ctrl = $controller('myCtrl', {$scope: scope});
// Mock firstFn ?
scope.secondFn();
// assert $scope.test1 = 1
// assert $scope.test2 = 3
【问题讨论】:
-
你在使用任何测试框架吗,也许是 Jasmine?
-
是的,我正在使用 Jasmine。
标签: javascript angularjs unit-testing karma-runner