因此我的组件中包含以下代码:
constructor(private router: Router){}
ngOnInit(){
module = this.router.config[0].data['env'].module
}
现在使用Jasmine和Karma运行单元测试时,出现以下错误:
Cannot read property 'env' of undefined
基本上,config.data.env是一个环境变量,它从另一个组件到libs文件夹中的我的组件。 所以我需要模拟env变量。
这就是我在规格文件中尝试过的:
const fakeData = {
data: {
env: {
module: 'myModule',
}
},
}
并在TestBed.configureTestingModule导入:
imports: [
RouterTestingModule.withRoutes(routes, fakeData),
]
withRoutes上的第二个参数是extraOptions,但这不起作用。
如何模拟环境变量并将其设置在router.config上? 谢谢!
答案 0 :(得分:0)
在routes
变量中,将data属性附加到第一个元素,然后从fakeData
中删除RouterTestingModule.withRoutes(routes, fakeData)
。
类似这样的东西:
const routes = [{
path: 'xyz',
component: YourComponent,
data: {
env: {
module: 'mockModule'
}
}
}];