问题标签 [rxjs-marbles]

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 回答
741 浏览

angular - Angular - 使用 Pairwise 运算符测试 Observable

我正在使用 Angular,并且一直在使用 jasmine-marbles 编写单元测试。这是一个我似乎无法弄清楚的场景。我将如何测试determineNextSteps$?除了使用 jasmine-marbles 之外,我也愿意接受其他测试解决方案。

例子:

当前尝试:

0 投票
2 回答
634 浏览

angular - 使用 RxJS Marbles 测试 Angular 响应式表单

角组件

茉莉花测试

stackblitz.com 示例

目的是使用大理石测试来测试Observable具有 Angular 反应形式的上下文中的代码。

  • 这种方法有意义吗?
  • 如何最好地模拟valueChanges一个FormField对象?
  • 有没有更好的方法来构建这类测试?
0 投票
1 回答
32 浏览

rxjs-marbles - 无法使用 marbel 测试编写测试用例

我创建了这个函数,因为对于我的应用程序使用 发出的所有请求http.post,这就是不同部分处理响应的方式。因此,我想创建一个函数,而不是复制代码。我想模拟错误处理并考虑使用marbel testing. 虽然我可以看到测试用例emits出现错误消息,但测试仍然失败。我究竟做错了什么

到目前为止我写的测试是

但它得到错误Expected spy next to have been called with [ Result({ result: 'error', additionalInfo: 'Error code: 304. not found. error: reason for error' }) ] but it was never called.

我可以在代码跟踪中看到收到了错误值。

0 投票
1 回答
624 浏览

rxjs - RxJs 测试流中的多个值

给定以下课程:

我想编写一些测试来验证$isDirty包含执行各种函数调用后我期望的值。具体来说,我想测试创建一个变量,更新它,然后撤消更改并验证$isDirty每个阶段的值。目前,我已经看到了两种测试 observables 的方法,但我不知道如何用它们中的任何一种来做这个测试。我希望测试执行以下操作:

  1. 创建一个新的ObjectStateContainer.
    • 断言这$isDirty是错误的。
  2. 在 上调用更新ObjectStateContainer
    • 断言这$isDirty是真的。
  3. ObjectStateContainer.
    • 断言这$isDirty是错误的。

0 投票
1 回答
702 浏览

javascript - How to test with the marble approach when the returm is a EMPTY observable in effect?

I am using EMPTY from rxjs in order to handle the catchError, What is the correct value for expected in order to pass the fail scenario.

0 投票
1 回答
313 浏览

angular - 如何使用 jest 和可选的弹珠测试复杂的 ngrx/rxjs 服务

我是 javascript 测试的新手,我找不到明确的例子来学习如何测试这些方法。我显然需要一些帮助!

这是我正在尝试测试的两种方法:

我启动了我的spec.ts如下:

我尝试了很多东西,比如订阅,或者弹珠......但我无法让它工作。我想检查结果(observableFromApi)并检查发布请求:

你能帮我吗?

编辑 :

这样它开始工作,但我有一个错误:

这是错误,我认为选择器未正确模拟,未调用 flatMap,我在选择器之前添加了一个点击并被调用。

编辑 2:

当我尝试模拟我的选择器时出现以下错误:

在此处输入图像描述

这就是我声明选择器的方式,请问这里有什么问题?

0 投票
2 回答
35 浏览

angular - 当角度失败时如何编写单元测试效果

我有 loadUserCacheRequestEffect$ 效果

我已经为正在运行的成功案例编写单元测试

我想在效果失败时编写单元测试并返回 ActionTypes.USER_SESSION_CACHE_FAILURE({error: err.error.detail})

0 投票
0 回答
124 浏览

testing - 如何在 rxjs 中测试连接流

给定的类有一个返回缓存流的方法,但是该流可以由另一个私有热流触发,这使得缓存流发出一个新值。

班上

示例:https ://stackblitz.com/edit/rxjs-gpyc46?file=index.ts

测试它的方法是什么?这次尝试失败

示例:https ://stackblitz.com/edit/rxjs-test-tricky-flow?file=src%2Fsome-class.spec.ts

UPD:所以这里的问题似乎无法模拟该trigger$属性。

它看起来像这样

但是trigger$必须以这种方式更改属性

示例:https ://stackblitz.com/edit/rxjs-test-tricky-flow-x2arxf?file=src%2Fsome-class.ts

0 投票
1 回答
214 浏览

unit-testing - 如何对 void 值的可观察值进行大理石测试?

使用 RXJS TestScheduler,有没有一种很好的方法来大理石测试一个类似事件的可观察对象,它发出undefined值?

我正在使用 TypeScript,所以类型规避/猴子修补是不可取的。

0 投票
2 回答
38 浏览

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

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

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

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

我得到的错误是: