2016-09-22 59 views
4

我有一個場景,我初始化控制器中的一些變量$ onInit方法。我如何測試這些屬性是否設置正確?

控制器

ctrl.$onInit = function() { 
    ctrl.devices = _.cloneDeep(ctrl.formDevices); 
}; 

單元測試

it('should expose device related properties to view', function() { 
     expect(controller.devices).toBeDefined(); 
}; 

輸出

Unit test output

回答

3

你必須明確地調用$的OnInit功能。 $ componentController不會調用這個函數,因爲它是生命週期鉤子的一部分,它不會運行。

$ onInit可以被稱爲隱含性,其可以被發現爲here

檢查$ onInit函數是否正確設置屬性的最簡單方法是調用$ onInit。畢竟,你正在測試$ onInit函數是否能夠工作,而不是AngularJS是否經歷了它的生命週期鉤子。

it('should expose device related properties to view', function() { 
    controller.$onInit(); 
    expect(controller.devices).toBeDefined(); 
}; 
相關問題