问题标签 [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.
rxjs - Karma / jasmine-marbles:测试失败消息的格式不正确
我已将jasmine-marbles添加到我的项目中,并且收到如下错误消息:
而不是这样的:
测试:
包.json:
如何修复测试失败消息?它与一些业力报告者/插件/缺少的库有关吗?
javascript - 如何阅读 RxJs mergeMap 弹珠图
在这个 的大理石图中mergeMap
,你如何阅读这个表达式?
rxjs - 我们应该避免嵌套的 rxjs 操作符吗?一个我无法测试的案例
我在使用rxjs
. 上MyActions.myAction
,我收到一个包含一个属性的对象ids
- 一个 id 数组 - 对于每个 id 我想通过它发送一个 HTTP 请求this.myApiService.getResource
,它返回一个Observable<Resource>
. 然后我想将所有结果收集到一个数组中,并调度另一个传递数组的动作。
上面的代码完成了这项工作,但我想知道是否应该避免嵌套两个反应式运算符流,以及是否有更好的方法来编写它。
我想知道的原因是我在为它编写测试时遇到了问题。我在下面写了测试,但我不能让它通过。
我得到的错误是:
angular - ngrx - 大理石测试和 withLatestFrom
withLatestFrom
我正在使用 Angular 8 和 ngrx 8。我正在尝试为用于从状态中获取一些值的效果编写单元测试。我正在使用rxjs/testing/TestScheduler
这个。在那里,我有一个这样的大理石图:
我的效果是这样的:
商店中的初始用户是一个空对象。
这个想法是第一个大理石框架通过调用userService
和更新状态;然后第二帧发生,它看到user.id
在第一帧期间设置的 ,因此它不是调用userService
,而是返回user
已经处于状态的实例。(这只是一个示例;最终目标是避免在服务中重复 HTTP 调用,或者如果用户 id 发生更改则取消之前的调用)。
问题是,在弹珠图中状态似乎没有更新,并且返回的用户对象withLatestFrom
始终是测试中设置的初始状态。
我是 Angular 和 ngrx 测试的新手,所以我不确定这是预期的行为还是我做错了什么。
如果有人可以推荐一种更好的方法来处理和测试这种情况,那也很棒。
rxjs - 结合 RxJS 大理石图
我正在测试一个可能用下图描述的 observable:
但是我无法在单个图中描述这个 observable,这是函数expectObservable().toBe所期望的
当我写如下图时:
g似乎在第 9 帧,但我希望该值出现在第 3 帧。
我还尝试使用 combineLatest 将多个图表组合成单个图表,如下所示,遵循此建议
但不幸的是我有一个错误。
请建议如何用弹珠测试这种情况,是否甚至可以结合预期的弹珠?