【发布时间】:2019-06-21 22:02:26
【问题描述】:
令我惊讶的是,尽管进行了大量搜索,但我仍然无法找到答案......
我正在尝试测试我的订阅代码是否正确。我之前在 Angular 2 中做过无数次,但我们刚刚开始了一个新项目,所以我们使用的是最新的 Angular,它重新编写了 rxjs,将链接更改为管道,现在我不知道是什么模拟或如何做。
给定:
constructor(private media: MediaObserver) { }
ngOnInit() {
this.active = true;
this.media.media$.pipe(takeWhile((ev) => this.active)).subscribe((change: MediaChange) => {
if (change.mqAlias === "xs" || change.mqAlias === "sm") {
this.stackFooter = true;
} else {
this.stackFooter = false;
}
});
}
如何编写 karma/jasmine 测试以确保在媒体服务触发事件时正确设置 this.stackFooter? 例如,我试图监视各种事物(media$、“pipe”),但似乎 takeWhile() 返回了一个我似乎无权访问的新 Observable?我该如何测试呢?或者,这不再是推荐的模式,我应该完全做其他事情吗?
【问题讨论】:
标签: angular rxjs karma-jasmine