Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在angularjs中的自定义提供程序中对助手进行单元测试_Angularjs_Unit Testing_Provider - Fatal编程技术网

在angularjs中的自定义提供程序中对助手进行单元测试

在angularjs中的自定义提供程序中对助手进行单元测试,angularjs,unit-testing,provider,Angularjs,Unit Testing,Provider,我有一个供应商: angular.module('app').provider('appProvider', function() { this.$get = Helper; function Helper() { function method() { return true; }; return { method: method }; }); 在单元测试时,我可以访问appProvider,但不能访问单元测试中的助手。我一

我有一个供应商:

angular.module('app').provider('appProvider', function() {
  this.$get = Helper;

  function Helper() {
    function method() {
      return true;
    };

    return {
      method: method
    };
});
在单元测试时,我可以访问appProvider,但不能访问单元测试中的助手。我一直在尝试:

describe('test', function() {
  var prov;

  beforeEach(angular.mock.module('app', function(appProvider) {
    prov = appProvider;
  }));

  it('provider', inject(function() {
    expect(prov.Helper.method()).toEqual(true);
  }));
});
得到这个错误:

TypeError:“undefined”不是对象(正在计算“prov.Helper.method()”)


问题是:我如何到达method(),以评估其行为是否正确?

您正在尝试测试提供商提供的服务的方法,因此测试提供商似乎有点迂回。为什么不直接测试服务呢?

当服务(助手)在提供程序(appProvider)中声明时,不知道如何做。