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();
        });


    });

しかし、ジャスミンhtmlテストページから以下のエラーが発生します

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

工場をテストする正しい方法を提案してください

4

1 に答える 1

3

ngResource別のモジュールで定義されています。ドキュメントhttp://docs.angularjs.org/api/ngResourceを確認してください。つまり、モジュールに依存関係を 含め<script src="angular-resource.js">て追加する必要があります。ngResourceMyApp.Factoryangular.module("MyApp.Factory", ["ngResource"])

ps。仕様では、サービスと同じ名前のローカル変数をローカルに割り当てることができるように、サービス名をアンダースコアで囲むことができます。例えば:

var factory;

beforeEach(function () {

  module("MyApp.Factory");

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

});

angularjs コーディング標準によると、$カスタム ディレクティブの命名には使用しないでください。

于 2013-09-03T13:22:00.010 に答える