Я работаю с angular-tree-component , чтобы показать дерево категорий в компоненте без состояния в angular.В настоящее время у меня запущен и запущен компонент, и пришло время провести несколько юнит-тестов.У меня возникла проблема, потому что я хочу протестировать функцию, которая выполняет метод update()
treeModel, который является свойством компонента дерева, который предоставляет API компонента angular-tree.(См. Документацию здесь ).
Моя функция, названная updateTree()
, просто запускает update()
на treeModel, как показано ниже:
export class CategoryTreeComponent implements AfterViewInit {
@ViewChild('tree') treeComponent: TreeComponent;
treeModel: TreeModel;
constructor() {
}
ngAfterViewInit() {
debugger;
this.treeModel = this.treeComponent.treeModel;
}
updateTreeFn() {
this.treeModel.update();
}
}
Итак, я написал своймодульный тест, как показано ниже.
it('should call update method of treeModel', () => {
component.ngAfterViewInit();
fixture.detectChanges();
const spy = spyOn(component.treeModel, 'update');
component.updateTree();
expect(spy).toHaveBeenCalled();
});
Проблема в том, что treeModel
всегда undefined
.Я заметил, что treeModel - это свойство класса типа TreeModel в TreeComponent Class, а update - это метод объекта TreeModel.Вероятно, именно поэтому я получаю эту ошибку.
Любые идеи о том, как я могу протестировать этот метод обновления, вызывать и распознавать объект treeModel, чтобы шпионить за ним.