Javascript 使用jest测试模拟angularJS控制器中的函数
我有一个用angularJS编写的小控制器 第一个函数实际上是调用第二个函数来执行计算并返回 我想在测试中模拟第二个函数,以便它返回我在模拟中提供的值,而不是调用该函数 ABCService.js ABCServic.test.js 在这里,我想模拟Javascript 使用jest测试模拟angularJS控制器中的函数,javascript,angularjs,unit-testing,jestjs,controller,Javascript,Angularjs,Unit Testing,Jestjs,Controller,我有一个用angularJS编写的小控制器 第一个函数实际上是调用第二个函数来执行计算并返回 我想在测试中模拟第二个函数,以便它返回我在模拟中提供的值,而不是调用该函数 ABCService.js ABCServic.test.js 在这里,我想模拟addTwoNumbers(),这样我们就可以得到测试期间提供的值,而不是调用 类似于,Mock(addTwoNumbers(x,y))=0,因此现在callAddFunction将返回0而不是30,如果不进行Mock,它应该返回30 var app
addTwoNumbers()
,这样我们就可以得到测试期间提供的值,而不是调用
类似于,Mock(addTwoNumbers(x,y))=0
,因此现在callAddFunction将返回0而不是30,如果不进行Mock,它应该返回30
var app = angular.module('mathModule', []);
app.controller('mathService', ['$scope', function($scope){
$scope.first = 0;
$scope.second = 0;
$scope.addTwoNumbers = function(x, y) {
return x + y;
};
$scope.callAddFunction = function() {
return $scope.addTwoNumbers(10, 20);
}
}]);
require('./mathService.js');
describe('Math service', function() {
beforeEach(
angular.mock.module('mathModule')
);
var $controller;
beforeEach(inject(function(_$controller_) {
$controller = _$controller_;
}));
describe('Test using 2 numbers', function() {
var $scope, controller;
beforeEach(function() {
$scope = {};
controller = $controller('mathService', { $scope: $scope });
});
it("Nested function", function() {
var total = $scope.callAddFunction();
expect(total).toEqual(31);
});
});
});