angular - Angular spy RxJS 可观察
问题描述
我想测试一项服务并模拟它获得的提供者。问题是我调用了一个我无法监视的提供者的可观察对象:
export class MyDataService {
destroy$ = new Subject();
constructor(
private wsService: WebsocketService
) {
this.wsService
.connected$
.pipe(takeUntil(this.destroy$))
.subscribe(connected => this.onConnected(connected));
}
myCoolFunction() {
// ...
}
ngOnDestory() {
this.destroy.next();
this.destroy.complete();
}
}
我的测试:
describe('MyDataService', () => {
let service: MyDataService;
beforeEach(() => {
const websocketServiceSpy = jasmine.createSpyObj('WebsocketService', [], ['connected$']);
TestBed.configureTestingModule({
providers: [
{
provide: WebsocketService,
useValue: websocketServiceSpy,
}
],
});
service = TestBed.inject(MyDataService);
});
it('should be created', () => {
expect(service).toBeTruthy();
});
});
但它抛出:
无法读取未定义的属性“管道”
如何正确监视 this.wsService.connected$?
解决方案
推荐阅读
- javascript - 给定证书,我如何确定哪些算法和格式可用于公钥?
- reactjs - 警告:从 submitForm() 捕获到未处理的错误错误:
- http - 使用范围请求下载内容损坏
- python - Python Django - 带有查看请求的问题
- r - 使用 ggplot2 在分组条形图中添加来自不同列的误差线
- sql - 使用 SQL 为窗口上的用户应用程序活动数据分配会话
- python - “|”是什么意思 表示其他按位或
- ios - 我构建 SwiftUI 项目的方式是否存在导致 .navigationTitle 不出现的问题?
- flutter - Flutter 在文本和边框底部之间添加空间
- javascript - React useEffect 执行最后一个函数