Angularjs angular1.5 x环境中ES6控制器的jasmine单元测试失败,出现异常

Angularjs angular1.5 x环境中ES6控制器的jasmine单元测试失败,出现异常,angularjs,unit-testing,ecmascript-6,karma-jasmine,angular-mock,Angularjs,Unit Testing,Ecmascript 6,Karma Jasmine,Angular Mock,我有一个ES6类的angular 1.5控制器。我正试图使用jasmine/karma和angular mocks来编写相同的单元测试。然而,我不知道如何为$inject部分添加单元测试,在这里我注入了依赖项,比如$filter。如何进行测试,使this.users最初是一个数组。我还想知道如何测试生命周期挂钩,如$inject和$destroy 目前,当我运行这些测试时,我得到以下异常,我不确定我是否理解。我不熟悉编写单元测试。我发现它找不到目标 as TypeError:无法读取未定义的属性

我有一个ES6类的angular 1.5控制器。我正试图使用jasmine/karma和angular mocks来编写相同的单元测试。然而,我不知道如何为$inject部分添加单元测试,在这里我注入了依赖项,比如$filter。如何进行测试,使this.users最初是一个数组。我还想知道如何测试生命周期挂钩,如$inject和$destroy

目前,当我运行这些测试时,我得到以下异常,我不确定我是否理解。我不熟悉编写单元测试。我发现它找不到目标

as TypeError:无法读取未定义的属性“users” 反对。(testcontext.js:35022:37)

我的单元测试如下

Import UsersCtrl from './users-controller.js';

describe("given a new Users Page", () => {

var UserController;

beforeEach(() => {
    angular.mock.module('app', []);
});

describe("when initialising  has completed", () => {

    beforeEach(() => {
        inject(($rootScope, $controller, $filter) => {
            const scope = $rootScope.$new();
            const filter = $filter
            UserController = $controller("UsersCtrl", { $scope: scope, $filter: filter});
        });
    });

    it("then users array for tab content should be empty initially", () => {
        const expectedActive = [];       
        expect(UserController.users).toEqual(expectedActive);
    });
});
}))

class UsersCtrl {
    constructor($filter) {
        this.i18n = $filter('i18n');
        this.users = [];
    }
//Life cycle Hooks: Initialization
$onInit() {
    this.users = [
        {name: this.i18n('USERS')}
    ];
}
//Life cycle Hooks: Destroy
  $onDestroy() {
  }
}

  UsersCtrl.$inject = ['$filter'];

 angular.module('app', []).controller('UsersCtrl',UsersCtrl);

export default UsersCtrl;
Import UsersCtrl from './users-controller.js';

describe("given a new Users Page", () => {

var UserController;

beforeEach(() => {
    angular.mock.module('app', []);
});

describe("when initialising  has completed", () => {

    beforeEach(() => {
        inject(($rootScope, $controller, $filter) => {
            const scope = $rootScope.$new();
            const filter = $filter
            UserController = $controller("UsersCtrl", { $scope: scope, $filter: filter});
        });
    });

    it("then users array for tab content should be empty initially", () => {
        const expectedActive = [];       
        expect(UserController.users).toEqual(expectedActive);
    });
});