我有一个场景,我在控制器中初始化一些变量。$ onInit方法。如何测试这些属性是否设置正确?
控制器
ctrl.$onInit = function () {
ctrl.devices = _.cloneDeep(ctrl.formDevices);
};
单元测试
it('should expose device related properties to view', function () {
expect(controller.devices).toBeDefined();
};
输出
答案 0 :(得分:3)
您必须显式调用$ onInit函数。 $ componentController不会调用此函数,因为它是生命周期钩子的一部分,它不会运行。
有一些方法可以将$ onInit称为implicity,可以找到here。
检查$ onInit函数是否正确设置属性的最简单方法是调用$ onInit。毕竟你正在测试$ onInit函数是否能完成它的工作,而不是AngularJS是否通过它的生命周期钩子。
it('should expose device related properties to view', function () {
controller.$onInit();
expect(controller.devices).toBeDefined();
};