angular 单元测试 - 如何模拟 router.config.data
angular unit test - how to mock router.config.data
所以我的组件中有以下代码:
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 文件夹中的另一个组件到我的组件。
所以我需要模拟环境变量。
这就是我在规范文件中尝试的内容:
const fakeData = {
data: {
env: {
module: 'myModule',
}
},
}
在 TestBed.configureTestingModule 进口:
imports: [
RouterTestingModule.withRoutes(routes, fakeData),
]
withRoutes 的第二个参数是 extraOptions,但它不起作用。
如何模拟环境变量并将其设置在 router.config 上?
谢谢!
在 routes
变量中,将数据 属性 附加到第一个元素并从 RouterTestingModule.withRoutes(routes, fakeData)
中删除 fakeData
。
像这样:
const routes = [{
path: 'xyz',
component: YourComponent,
data: {
env: {
module: 'mockModule'
}
}
}];
所以我的组件中有以下代码:
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 文件夹中的另一个组件到我的组件。 所以我需要模拟环境变量。
这就是我在规范文件中尝试的内容:
const fakeData = {
data: {
env: {
module: 'myModule',
}
},
}
在 TestBed.configureTestingModule 进口:
imports: [
RouterTestingModule.withRoutes(routes, fakeData),
]
withRoutes 的第二个参数是 extraOptions,但它不起作用。
如何模拟环境变量并将其设置在 router.config 上? 谢谢!
在 routes
变量中,将数据 属性 附加到第一个元素并从 RouterTestingModule.withRoutes(routes, fakeData)
中删除 fakeData
。
像这样:
const routes = [{
path: 'xyz',
component: YourComponent,
data: {
env: {
module: 'mockModule'
}
}
}];