问题标签 [jasmine-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 回答
166 浏览

javascript - 使用 jasmine marbles 时在 rxjs 订阅中测试代码

我希望能够测试在可观察订阅中运行的代码:

例如,我想确保someFunc()使用result. 我认为我应该能够做类似的事情

问题是我会被告知someFunc从未被调用过。我不想将流和subscribe分开的函数分开。

0 投票
1 回答
2714 浏览

unit-testing - 如何使用 jasmine-marbles 在 rxjs 管道中测试 timeout()

我写了一个过滤输入可观察的管道。在管道中,如果源未及时发出预期值,我使用 timeout() 运算符指定超时以中止等待。我想用 jasmine-marbles 测试超时情况,但我无法让它工作。我相信在源发出之前进行expect(source).toBeObservable()评估。

Stackblitz

待测管道:

使用 toPromise() 进行测试按预期工作:

用茉莉花大理石进行测试

失败并出现错误

0 投票
2 回答
566 浏览

jasmine - 如何使用茉莉弹珠测试 ngrx 效果?

我无法测试 NgRx 效果。你能帮助我吗?

朋友,请帮帮我。我想测试一些效果,但我不能。我收到错误消息“预期 $[0].notification.value.payload 是一种对象,但实际上是 User({ name: '1212', roles: ['somerole' ] })”。我不明白有什么问题。

影响:

规格:

我试着根据一些例子来做,但有什么不对。

0 投票
2 回答
300 浏览

angular - 使用 Marbles 对外部 URL 进行单元测试 NGRX 效果

当触发效果时,我想在单元测试中测试两个可观察对象,以获得这部分代码的 100% 代码覆盖率。因为 awindow.location.href被触发,我无法正确测试它。

影响

测试其他条件的工作

测试不适用于 if 条件

有人可以解释如何测试 If 条件吗?

0 投票
1 回答
828 浏览

angular - RxJs - Jasmine marbles forkJoin 算子测试

这是 forkJoin 运算符 jasmine marble 测试:

测试产生以下错误:

谁能告诉我我做错了什么?

0 投票
0 回答
840 浏览

typescript - 测试 NGRX 效果的茉莉花弹珠

我正在尝试使用 jasmine-marbles 测试 NGRX 效果,但我从 effects.myEffect$ 得到的响应似乎有嵌套运算符。我所期待的是一个可观察的返回一个单一的、平坦的动作。任何帮助或输入将不胜感激。

我的效果是这样的:

我的 package.json 看起来像:

嵌套观察者/来源:

在此处输入图像描述

我从失败的测试中得到的错误是,我可能错误地假设这意味着可观察值是空的?

0 投票
1 回答
111 浏览

angular - 如何编写单元测试以获得在 n 次后返回有效响应的效果?

我必须为此效果编写单元测试,即在出错时每 1 秒调用一次服务。例如,我需要测试调用服务 3 次后,我会收到良好的响应。

我尝试了一些方法来测试,但没有任何结果。

这是我必须测试的效果:

这是我为了看到成功场景而进行的单元测试。我要测试的是重载逻辑

0 投票
1 回答
547 浏览

angular - NGRX - 使用 jasmine-marbles 将 Promise 转换为 observables 的测试效果问题

我有一个 nrwl/nx 工作区,其中有一个名为missions-sharedThis library has a feature state,在密钥下missions我还有一个后端服务,名为BackendServiceClient. 此后端返回承诺(由于代码生成)

我的问题是后端返回承诺,而 jasmine-marbles 无法识别:

我正在尝试模拟后端。我为此使用了一个测试提供者

这是 MissionEffect :

然后我尝试使用 jasmine-marbles 测试这些@Effect

但是我在测试中遇到了这个错误:

似乎是因为我正在使用 Promise 模拟后端(应该如此),它无法识别返回的 Observable。

如果我将模拟更改为:

然后测试成功。

这是测试:

我可以确认问题不是由于使用@nrwl/DataPersistence,因为以下@Effect 会产生相同的错误:

有人可以帮我准确理解这里的问题吗?为什么我不能使用模拟的 Promise 来测试这个?

0 投票
1 回答
8068 浏览

angular - 如何修复预期 $.length = 2 等于 1

我想用茉莉花大理石测试 ngLogger 函数,但出现错误

测试:

const expected$ = hot('a', { a: expected });不要做任何区别。const expected$ = hot('a|', { a: expected });给出错误:

然后我改变了

我得到错误Expected $[1].frame = 0 to equal 10. 是什么意思?

0 投票
1 回答
34 浏览

angular - 是否可以从组件测试服务中的一个可观察属性

我不知道我想做的这是否可行,我有一个组件FiltersComponent和一个 Service FiltersService。在 FiltersService 中,我有一个 BehaviorSubject 类型的 onFilterChange 属性。我将它公开为Observable,并且我想在应用更改时测试这个可观察的抛出。

应用过滤器时如何测试