1
私はAngularJSを初めて使用しています。テンプレートと関連するコントローラを含む次のコンポーネントを作成しました。ジャスミンテスト:等しいと予想される未定義オブジェクト
angular.
module('beerDetail').
controller('BeerDetailController', ['BeerSelection', '$scope', '$rootScope',
function BeerDetailController(BeerSelection, $scope, $rootScope) {
let beerSelected = BeerSelection.getBeerSelected();
$scope.ok =() => { $rootScope.modalInstance.close() };
$scope.beer = beerSelected;
$scope.foodPairings = beerSelected.food_pairing.join(", ");
this.getFormattedIngredients = (ingredients) => {...};
this.getFormattedMethod = (method) => {...};
$scope.allIngredients = this.getFormattedIngredients(beerSelected.ingredients);
$scope.method = this.getFormattedMethod(beerSelected.method);
}
]).
component('beerDetail', {
templateUrl: '/components/beer-detail/beer-detail.template.html',
controller: 'BeerDetailController',
});
私はスコープに渡されたビールは呼び出すことが提供するものであるかどうかを確認し、次のテスト作成した、コントローラをテストしたいと思います:私は入手できますか
describe('BeerDetailController', function() {
it('returns the selected beer', function() {
beforeEach(module('beerDetail'));
let $controller;
let scope;
let rootScope;
let createController;
let beerSelection;
let beerSelected = {
"id": 192,
"name": "Punk IPA 2007 - 2010",
};
beforeEach(inject(function ($rootScope, $controller) {
scope = $rootScope.$new();
createController = function() {
return $controller('BeerDetailController',
{'BeerSelection': beerSelection},
{'$scope': scope},
{'$rootScope': rootScope}
);
spyOn(beerSelection, 'getBeerSelected').and.returnValues(beerSelected);
};
}));
expect(scope.beer).toEqual(beerSelected);
});
});
:BeerSelection.getBeerSelected()
を次のエラーが発生しました:
Expected undefined to equal Object({ id: 192, name: 'Punk IPA 2007 - 2010' })
問題がどこにあるのでしょうか?前もって感謝します!
おかげで仕事souldと思います!私は今: "BeerDetailController"という名前のコントローラは登録されていません。なぜですか? – Anto
単純な引用符でコントローラに渡すすべてのカスタム($ scopeなどの角度サービスには適用されません)は、モジュールに登録する必要があります。角度のある書類はあなたに役立ちます:https://docs.angularjs.org/guide/services。それはSpring CDIと同じように動作します。 –
mmm私はちょっと混乱しています。 BeerDetailControllerはどこに登録すればよいですか? – Anto