我在程序中添加了下划线作为模块。
我现在正在进行单元测试,我不知道如何模拟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()


希望这对您有用!

10-07 22:45