Angularjs angular1.5 x环境中ES6控制器的jasmine单元测试失败,出现异常
我有一个ES6类的angular 1.5控制器。我正试图使用jasmine/karma和angular mocks来编写相同的单元测试。然而,我不知道如何为$inject部分添加单元测试,在这里我注入了依赖项,比如$filter。如何进行测试,使this.users最初是一个数组。我还想知道如何测试生命周期挂钩,如$inject和$destroy 目前,当我运行这些测试时,我得到以下异常,我不确定我是否理解。我不熟悉编写单元测试。我发现它找不到目标 as TypeError:无法读取未定义的属性“users” 反对。(testcontext.js:35022:37) 我的单元测试如下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:无法读取未定义的属性
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);
});
});