单元测试下面抛出错误:TypeError:无法读取未定义的属性'toString'。怎么解决这个问题?
component.Ts code
//来自父级的输入值
@Input() path: treeDataKey;
ngOnInit() {
this.getTestPlanData(this.testId);
this.testPath = (this.path).toString().replace(/,/g,' /');
}
getTestPlanData(param:any) {
//Do something
}
component.spec.ts
it('should call getTestPlanData', () => {
expect(component.getTestPlanData).toHaveBeenCalled;
});
答案 0 :(得分:0)
试试这个:
import {isUndefined} from "util";
this.testPath = (this.path && !isUndefined(this.path))?
(this.path).toString().replace(/,/g,' /'):'';
答案 1 :(得分:0)
根据您的@Input()
类型为该treeDataKey
变量添加默认值。
如果你没有input
的价值,它会做什么,它将被分配empty value
。
因此,如果在测试时未实例化parent component
,则测试将以默认值运行。
@Input() path: treeDataKey = "";
ngOnInit() {
this.getTestPlanData(this.testId);
this.testPath = (this.path).toString().replace(/,/g,' /');
}
getTestPlanData(param:any) {
//Do something
}