2

我正在编写单元测试来测试如下开发的工厂

angular.module("MyApp.Factory",[]).factory("factory",function($resource, baseUrl) {
    return {
        someService: function () {
            return $resource(baseUrl + "/someUri");
        }
    };
});

茉莉花规格相同

describe("My App Factory Tests", function () {

        var $factory;

        beforeEach(function () {

            module("MyApp.Factory");

            inject(function (factory) {
                $factory = factory;
            });

        });

        it("Factory must be defined", function () {
            expect($factory).toBeDefined();
        });


    });

但我最终从 jasmine html 测试页面得到以下错误

Error: Unknown provider: $resourceProvider <- $resource <- eligibilityService

请建议正确的方法来测试工厂

4

1 回答 1

3

ngResource在单独的模块中定义。请检查文档http://docs.angularjs.org/api/ngResource 换句话说,您必须包含<script src="angular-resource.js">并添加对模块的ngResource依赖项 - 。MyApp.Factoryangular.module("MyApp.Factory", ["ngResource"])

附言。在规范中,您可以用下划线包围服务名称,以便我们可以在本地分配与服务同名的局部变量。例如:

var factory;

beforeEach(function () {

  module("MyApp.Factory");

  inject(function (_factory_) {
    factory = _factory_;
  });

});

根据 angularjs 编码标准$,不应使用命名自定义指令。

于 2013-09-03T13:22:00.010 回答