问题标签 [marble-diagram]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2773 浏览

rxjs - Karma / jasmine-marbles:测试失败消息的格式不正确

我已将jasmine-marbles添加到我的项目中,并且收到如下错误消息:

而不是这样的:

测试:

包.json:

如何修复测试失败消息?它与一些业力报告者/插件/缺少的库有关吗?

0 投票
1 回答
377 浏览

javascript - 如何阅读 RxJs mergeMap 弹珠图

在这个 的大理石图中mergeMap,你如何阅读这个表达式?

在此处输入图像描述

0 投票
2 回答
38 浏览

rxjs - 我们应该避免嵌套的 rxjs 操作符吗?一个我无法测试的案例

我在使用rxjs. 上MyActions.myAction,我收到一个包含一个属性的对象ids- 一个 id 数组 - 对于每个 id 我想通过它发送一个 HTTP 请求this.myApiService.getResource,它返回一个Observable<Resource>. 然后我想将所有结果收集到一个数组中,并调度另一个传递数组的动作。

上面的代码完成了这项工作,但我想知道是否应该避免嵌套两个反应式运算符流,以及是否有更好的方法来编写它。

我想知道的原因是我在为它编写测试时遇到了问题。我在下面写了测试,但我不能让它通过。

我得到的错误是:

0 投票
1 回答
164 浏览

angular - ngrx - 大理石测试和 withLatestFrom

withLatestFrom我正在使用 Angular 8 和 ngrx 8。我正在尝试为用于从状态中获取一些值的效果编写单元测试。我正在使用rxjs/testing/TestScheduler这个。在那里,我有一个这样的大理石图:

我的效果是这样的:

商店中的初始用户是一个空对象。

这个想法是第一个大理石框架通过调用userService和更新状态;然后第二帧发生,它看到user.id在第一帧期间设置的 ,因此它不是调用userService,而是返回user已经处于状态的实例。(这只是一个示例;最终目标是避免在服务中重复 HTTP 调用,或者如果用户 id 发生更改则取消之前的调用)。

问题是,在弹珠图中状态似乎没有更新,并且返回的用户对象withLatestFrom始终是测试中设置的初始状态。

我是 Angular 和 ngrx 测试的新手,所以我不确定这是预期的行为还是我做错了什么。

如果有人可以推荐一种更好的方法来处理和测试这种情况,那也很棒。

0 投票
0 回答
59 浏览

rxjs - 结合 RxJS 大理石图

我正在测试一个可能用下图描述的 observable:

但是我无法在单个图中描述这个 observable,这是函数expectObservable().toBe所期望的

当我写如下图时:

g似乎在第 9 帧,但我希望该值出现在第 3 帧。

我还尝试使用 combineLatest 将多个图表组合成单个图表,如下所示,遵循建议

但不幸的是我有一个错误。

请建议如何用弹珠测试这种情况,是否甚至可以结合预期的弹珠?