如何模拟或调用基本的javascript函数?

时间:2015-12-14 05:07:07

标签: javascript angularjs unit-testing jasmine

我有两个函数funcA()和funcB(),我为$ scope.funcA()编写单元测试用例。

以下是定义:

function funcB(){
//statements
 console.log("At function B");
};

$scope.funcA() = function(){
funcB(); 
console.log("At function A");
};

现在我正在测试我的$ scope.funcA()实际上正在调用我的funcB()。如何阻止这个并进行虚假调用或模拟funcB();在茉莉花。

1 个答案:

答案 0 :(得分:0)

您可以使用spyOn()andCallFake()来实现它。 请参阅我之前的答案。 Does Jasmine's spyOn() allow the spied on function to be executed?

希望这会有所帮助。

修改

对于较新版本的jasmine,snytax将是

spyOn($scope, 'funcB').and.callFake(function() {
      return 'something';
});

有关完整列表,请参阅 - http://jasmine.github.io/2.0/introduction.html