angular - 如何模拟角度ActivatedRoute
问题描述
我有这个代码ActivatedRoute
,map
后跟subscribe
.
export class MyComponent implements OnInit {
constructor(private actr: ActivatedRoute) {
this.actr.data.map(data => data.aList).subscribe((res) => {
console.log('res ------------------------- ', res); // It is not showing this.
this.myResponse = res;
});
}
ngOnInit() {
// some code
// myResponse is undefined
}
}
我在规范文件中尝试过:
class MockActivatedRouter {
public map = (data) => data.aList = of({some: [] });
// Or
public map = (data) => of({some: [] });
}
它们都不起作用。
解决方案
我想你想像这样模拟它:
class MockActivatedRouter {
data = of({some: [] }); // Dont remember the old rxjs5 syntax but you might want to use Observable.of(...)
}
MeansActivatedRoute
有一个属性data
,您可以在构造函数中订阅该属性。
我通常只用普通对象来模拟它,并提供 observableSubject
以便能够在测试中随时发出。
我想你知道如何在测试中提供你的模拟:
TestBed.configureTestingModule({
...
providers: [{
provide: ActivatedRoute,
useClass: MockActivatedRouter
}]
});
推荐阅读
- aws-lambda - 如何使用 Middy 与招摇
- bison - 为什么不能添加浮点计算器使用野牛和弹性
- sql - 如何在 pl SQL 中将列值设置为列名,但我不知道列值是什么?
- telegraf - Debian 安装 telegraf 数据混乱
- javascript - 如何将 v-model 与 Vue 3 组合 API 一起使用?
- r - 对于新的“ggproto”,需要使用“extra_params”指定哪些参数
- java - 如何在执行前验证 Spark 表达式语法
- javascript - 角度切换按钮逻辑
- php - laravel 8 图像验证无法正常工作
- bash - Bash:进程块 b/c 读取循环有时无法从文件描述符中读取更多数据,但手动 cat /proc/
/fd/ 能够