Jasmine AngularJs Как получить доступ к свойствам контроллера - PullRequest
0 голосов
/ 15 октября 2018

Это мой код AngularJs, я хотел бы написать модульный тест, который должен вызывать переменные и функции внутри функции контроллера.

Например, я хотел бы ожидать, будет ли abcCode toBeDefined();

пожалуйста, дайте мне знать, как загрузить модуль и вызвать свойства внутри функции контроллера (abcCodesCntrl).Ваши предложения будут действительно полезны.спасибо

function () {

angular.module('abcapp',[])
    .component('abcCodes', {
        templateUrl: 'app/abcCodes/abcCodes.html',
        controller: abcCodesCntrl
    })
    .config(function ($stateProvider) {
        $stateProvider
            .state('abcCodes', {
                parent: 'home',
                url: 'abcCodes',
                template: '<abc-codes flex layout="column"></abc-codes>',
                data: {
                    label: "abc Codes",
                    icon: 'business',
                    menu: true
                }
            });
    });

/** @ngInject */
function abcCodesCntrl(F $state, abcCodeSvc, $scope, $mdDialog) {
    var ctrl = this;


    ctrl.abcCodes = [];

    ctrl.loadingabcCodes = false;

}}

1 Ответ

0 голосов
/ 15 октября 2018
beforeEach(() => {
  angular.mock.module('abcapp');
});

it('pass', inject( $rootScope => {
  const scope = $rootScope.$new();
  const element = angular.element('<abc-codes/>');
  const template = $compile(element)(scope);
  const controller = template.controller('abcCodes');
  expect(controller.abcCodes).toBeDefined();
}))

если вы можете использовать es6, тогда контроллер станет классом

export class abcCodesCntrl{
  /** @ngInject */
  constructor( $state, abcCodeSvc, $scope, $mdDialog) {
    this.$state = $state;
    this.abcCodeSvc = abcCodeSvc;
    this.$scope = $scope;
    this.$mdDialog = $mdDialog;
    this.abcCodes = [];
    this.loadingabcCodes = false;
  }
}

незначительного улучшения, но вы можете протестировать контроллер отдельно от директивы, что означает, что вам не нужно создавать и инициализировать элемент.Просто проверьте работоспособность самостоятельно.Кроме того, как только вы добавляете методы, его гораздо легче читать.

...