我有两个函数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()进行假调用或模拟;在 Jasmine 中
最佳答案
您可以使用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