1

単純な角度コードでテストを行っていますが、次のエラーが発生しています。

エラー: [$injector:unpr] 不明なプロバイダー: pServiceProvider <- pService

詳細は次のとおりです。

ProdModule.JS

var sapp = angular.module('productsApp', []);

ProdController.js

/// <reference path="../angular.js" />
/// <reference path="ProdModule.js" />


sapp.controller('ProductsController', function productsController($scope,      
pService) {
$scope.products = pService();
});

ProdService.js

/// <reference path="../angular.js" />
/// <reference path="ProdModule.js" />
// register the service

sapp.service('pService', function pService() {
return function getProducts() {
    return [{ name: 'Chai' }, { name: 'Syrup' }];
}
});

Test.JS

 /// <reference path="../jasmine/jasmine.js" />
/// <reference path="../dependencies/ProdModule.js" />
/// <reference path="../dependencies/ProdService.js" />
/// <reference path="../dependencies/ProdController.js" />

describe('Prod', function () {
beforeEach(module('productsApp'));
var $controller;
beforeEach(inject(function (_$controller_) {
    $controller = _$controller_;
    console.log($controller)
}));
it('should return products list on load', function () {
    var $scope = {};
    var productsController = $controller(function inlineController($scope,   
 pService) {
        $scope.products = pService();
    }, { $scope: $scope });

    expect($scope.products).toEqual([{ name: 'Chai' }, { name: 'Syrup' }]);
});
})

Service コードを ProdController.js に配置すると、完全に機能しますが、コードを各 js ファイルに分離すると、テストが中断されます。何が欠けているか分かりますか?

4

0 に答える 0