我在程序中添加了下划线作为模块。
我现在正在进行单元测试,我不知道如何模拟Underscorejs。
underscorejs模块
var underscore = angular.module('underscore', []);
underscore.factory('_', function () {
// assumes underscore has already been loaded on the page
return window._;
});
单元测试
这行得通,但我不想实现每个下划线功能...还有另一种使用underscorejs的方法吗?
$provide.factory('_', function () {
var und = {};
und.findWhere = function () {
};
return und;
});
最佳答案
是的,可以这样做:
步骤1:将服务插入每个功能之前。
步骤2:然后我们需要对下划线服务进行建模,
所以写:
spyOn(underscoreService,"methodName").and.callFake(function(){
return //whatever you want;
})
要么
spyOn(underscoreService,"methodName").and.callThrough()
希望这对您有用!