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

angular - 测试 ngrx 模拟商店的意外错误

我想我找到了解决方案,转到问题的结尾

我对 jasmine-marbles 进行了一个简单的测试,我收到了这个错误,我不知道发生了什么。有任何想法吗?

预期 $[0].notification.kind = 'E' 等于 'N'。

预期 $[0].notification.value = undefined 等于 [ ]。

预期 $[0].notification.error = TypeError:无法读取未定义的属性“池”等于未定义。

预期 $[0].notification.hasValue = false 等于 true。

池管理.component.ts

池管理.selectors.ts

池列表.component.spec.ts

console.log('预期',预期);

在此处输入图像描述

0 投票
1 回答
585 浏览

angular - 如何使用 Jasmine Marbles 为 Angular 的 HttpClient 编写单元测试?

我有一个项目,我广泛使用角度 HttpClient 请求作为流的基础。我很想使用 jasmine marble 测试这些请求,因为它似乎是流单元测试的“行业标准”。

然而,我正在努力让整个工作正常工作,要么 HttpTestingController 失败,要么弹珠失败。我已经建立了一个堆栈闪电战来证明我的观点。

0 投票
1 回答
741 浏览

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

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

例子:

当前尝试:

0 投票
0 回答
109 浏览

angular - Jasmine-marble/createSpy - 无法读取未定义的属性“nativeElement”

我正在为我的功能编写 jasmine-marble 测试,一切正常,但未返回创建的冷可观察对象:以下是 HTML 代码:

返回数据的服务方法:

获取数据的组件方法:

在给定的 spec 函数中,我收到了错误,在 it 函数中错误来自 liElement,但真正的原因是使用 spy 对象返回的 observable 始终未定义。

我想要做的是获取使用cold()方法创建的observable,并使用使用createSpyObj函数创建的spy对象返回它,但是observable没有返回到组件中的调用函数或者存在其他问题。我花了几个小时寻找这个但没有找到合适的答案或正确的解决方案。

0 投票
1 回答
656 浏览

angular - Angular - 为什么我的弹珠测试不适用于包含用户权限的 BehaviorSubject?

我正在用 Angular 8 编写一个应用程序。

我决定使用带有 BehaviorSubject 的 rxjs 存储来进行简单的状态管理。

基本上,我的代码是一个存储、加载和更新用户权限的服务。有时这将在 HTTP 调用后来自服务器,有时此信息将来自本地存储。用户权限更改后,所有订阅者都将得到更新。

这是我的 StackBlitz:https ://stackblitz.com/edit/rxjs-state-management-get-set 请单击“添加配置文件”按钮以查看它的运行情况。

这是我设置了单元测试的 StackBlitz:https ://stackblitz.com/edit/rxjs-state-management-get-set-xpptmr

我已经使用基本的订阅者和完成的技术在那里编写了一些单元测试,但我想更深入地挖掘。

我已经读到我们可以使用“大理石”来测试 Observable 的值随着时间的推移:https ://rxjs-dev.firebaseapp.com/guide/testing/internal-marble-tests

我想使用弹珠来测试我的代码中的“加载”功能。

服务商店的代码片段:

基本上,“加载”函数会检查本地存储中是否存储了任何数据,如果有,它将更新 BehaviorSubject 值。我想测试值如何随时间变化,例如在调用加载函数之前它是值 1,而不是在调用函数之后它是值 2。

03/07/2020 尝试弹珠测试----编辑:

这是我的弹珠测试的代码片段:

错误:

示例:https ://stackblitz.com/edit/rxjs-state-management-get-set-xpptmr?embed=1&file=src/testing/persona.service.spec.ts

0 投票
0 回答
88 浏览

angular - 使用“jasmine-marbles”测试我的服务时出现“应该正确返回”错误

我收到一个错误:

但无法理解问题。这是我的服务片段:

})

这是我对上述服务的测试(获取):

我无法理解这个问题。有什么帮助我吗?我按照这里的教程

0 投票
1 回答
304 浏览

angular - 如何触发错误并测试方法?

我正在做角度服务测试。它工作正常。但是我无法实现100%的测试,因为错误功能没有测试。我已经尽力了。但无法拿出 100%。有人帮我吗?

这是我的服务:

我的测试用例目前我已经覆盖了 75%。错误测试的问题。这是我的尝试:

但我的尝试不起作用。我没有得到 100% 的覆盖率。请在这里寻求帮助。

0 投票
1 回答
829 浏览

angular - 使用角度测试时如何使用“ngrx 效果”触发错误

这是我的效果:

规范文件:快乐的场景工作正常:

规范文件:错误场景不起作用:

在错误场景中如何触发error服务中?实际上我是从间谍那里发送的。但我仍然收到成功消息。

在控制台中出现错误,例如:

如何修复错误?真的需要为 1 个效果编写 2 个单独的“it”函数吗?寻求帮助。提前致谢。

0 投票
1 回答
663 浏览

testing - RxJs Marble 使用 withLatestFrom 测试 concatMap

如何对这个 Observable 进行单元测试?

以下单元测试失败:

为了通过这个单元测试,应该如何编写弹珠?我做错了什么?我希望通过concatMap在链中(之前withLatestFrom)插入运算符,我还必须以某种方式在弹珠中“标记”它。

0 投票
1 回答
35 浏览

angular - 我应该如何编写我的单次运行 RxJs 代码,以便我可以测试订阅泄漏?

使用此代码:

我刚刚遇到了内存泄漏错误。稍后再次发出服务调用,我意识到订阅从未清理过,因为订阅内容再次运行。

显然这是我的修复:

现在工作正常 - 将first()操作员调用移动到管道的末端。

我一直在研究 jasmine marble 测试,我相信我需要参考可观察流来测试它,而我没有。所以回归测试会很混乱,这让我觉得我在做的事情一定是不好的做法。请问以可单元测试的方式编写此类代码的正确方法是什么?最好用于大理石测试。