我有一个要测试的函数,该函数是否有许多条件和依赖于ActivatedRoute值的switch语句。我需要在angular的单元测试中设置一个未订阅的ActivatedRoute,以便能够设置这两行:
component.route.snapshot.root.children[0].params["username"] = "user1";
component.route.snapshot.parent.firstChild.routeConfig.path = "kweeks";
该组件是我测试的组件,它具有一个名为(route)的公共变量,该变量具有(ActivatedRoute)数据类型,我尝试添加:
let route: any = {
snapshot: {
root: {
children: [
{
params: {
username: String
}
}
]
},
parent: {
firstChild: {
routeConfig: {
path: String
}
}
}
}
};
component.route = route;
但是我在单元测试中出错:
TypeError: Cannot read property 'path' of undefined
更新问题已解决: 问题是我使用了另一行,但没有看到:
component.route.snapshot.parent.routeConfig.path = "home";
所以我将路线更新为:
let route: any = {
snapshot: {
root: {
children: [
{
params: {
username: String
}
}
]
},
parent: {
firstChild: {
routeConfig: {
path: String
}
},
routeConfig: {
path: String
}
}
}
};