У меня есть функция, которую я тестирую, имеет много условий if и операторов switch, которые зависят от значений ActivatedRoute. Мне нужно установить не подписанный 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
}
}
}
};