问题标签 [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.
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('预期',预期);
angular - 如何使用 Jasmine Marbles 为 Angular 的 HttpClient 编写单元测试?
我有一个项目,我广泛使用角度 HttpClient 请求作为流的基础。我很想使用 jasmine marble 测试这些请求,因为它似乎是流单元测试的“行业标准”。
然而,我正在努力让整个工作正常工作,要么 HttpTestingController 失败,要么弹珠失败。我已经建立了一个堆栈闪电战来证明我的观点。
angular - Angular - 使用 Pairwise 运算符测试 Observable
我正在使用 Angular,并且一直在使用 jasmine-marbles 编写单元测试。这是一个我似乎无法弄清楚的场景。我将如何测试determineNextSteps$
?除了使用 jasmine-marbles 之外,我也愿意接受其他测试解决方案。
例子:
当前尝试:
angular - Jasmine-marble/createSpy - 无法读取未定义的属性“nativeElement”
我正在为我的功能编写 jasmine-marble 测试,一切正常,但未返回创建的冷可观察对象:以下是 HTML 代码:
返回数据的服务方法:
获取数据的组件方法:
在给定的 spec 函数中,我收到了错误,在 it 函数中错误来自 liElement,但真正的原因是使用 spy 对象返回的 observable 始终未定义。
我想要做的是获取使用cold()方法创建的observable,并使用使用createSpyObj函数创建的spy对象返回它,但是observable没有返回到组件中的调用函数或者存在其他问题。我花了几个小时寻找这个但没有找到合适的答案或正确的解决方案。
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 尝试弹珠测试----编辑:
这是我的弹珠测试的代码片段:
错误:
angular - 如何触发错误并测试方法?
我正在做角度服务测试。它工作正常。但是我无法实现100%的测试,因为错误功能没有测试。我已经尽力了。但无法拿出 100%。有人帮我吗?
这是我的服务:
我的测试用例目前我已经覆盖了 75%。错误测试的问题。这是我的尝试:
但我的尝试不起作用。我没有得到 100% 的覆盖率。请在这里寻求帮助。
angular - 使用角度测试时如何使用“ngrx 效果”触发错误
这是我的效果:
规范文件:快乐的场景工作正常:
规范文件:错误场景不起作用:
在错误场景中如何触发error
服务中?实际上我是从间谍那里发送的。但我仍然收到成功消息。
在控制台中出现错误,例如:
如何修复错误?真的需要为 1 个效果编写 2 个单独的“it”函数吗?寻求帮助。提前致谢。
testing - RxJs Marble 使用 withLatestFrom 测试 concatMap
如何对这个 Observable 进行单元测试?
以下单元测试失败:
为了通过这个单元测试,应该如何编写弹珠?我做错了什么?我希望通过concatMap
在链中(之前withLatestFrom
)插入运算符,我还必须以某种方式在弹珠中“标记”它。
angular - 我应该如何编写我的单次运行 RxJs 代码,以便我可以测试订阅泄漏?
使用此代码:
我刚刚遇到了内存泄漏错误。稍后再次发出服务调用,我意识到订阅从未清理过,因为订阅内容再次运行。
显然这是我的修复:
现在工作正常 - 将first()
操作员调用移动到管道的末端。
我一直在研究 jasmine marble 测试,我相信我需要参考可观察流来测试它,而我没有。所以回归测试会很混乱,这让我觉得我在做的事情一定是不好的做法。请问以可单元测试的方式编写此类代码的正确方法是什么?最好用于大理石测试。