在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)中声明时,不知道如何做。