问题标签 [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 - jasmine-marbles 接下来只发出第一个值
我有一些这样的弹珠:
当我打电话时:
x 和 y 都被发射。但是,我想这样做:
这可能吗?如果是这样,我该如何实现?谢谢
我正在寻找getTestScheduler().next()
类似于您在 RxJs 主题上调用 next 的方式 - 也许它会在弹珠中发出下一个项目,或者如果下一个项目是“-”,它不会发出任何内容......不完全确定如何它会起作用,但希望你能明白我所追求的要点。
angular - RxJS:为什么订阅没有区别
考虑以下服务示例
在此服务中,我正在检查是否允许用户查看特定资源。
这就是我试图测试它的方式
测试的目的是检查资源缓存是否有效。但我注意到的是,如果我替换以下代码段
用简单
测试仍然有效,我是 RxJS 和大理石测试的新手,但据我所知,Observable 在订阅之前不应该工作。
问题 - 为什么它是双向的?
angular - 带有茉莉花弹珠的 Ngrx 测试选择器:预期 $.length = 1 到等于 2
我正在尝试测试一个简单的加载器组件,该组件从我制作的 ngrx 选择器中获取其状态。选择器提供了一个对象(接口名称为 LoaderState){queue: number}
,我将其映射为布尔值以显示或隐藏加载器。
为了测试它,我正在使用来自ngrx的茉莉花弹珠和mockStore。我正在覆盖选择器,我正在创建一个具有预期值的预期冷可观察对象,然后我使用期望是可观察的。
我已按照ngrx 文档和Angular Up conf 中的教程进行操作。
组件
规格
我希望测试通过并且代码运行没有问题,但是测试失败并且导致的错误是:
angular - 为什么在单元测试ngrx-effect时出现此错误
我正在为 ngrx 效果编写单元测试。我尝试了所有方法,但似乎无法克服此错误:
我要测试的效果是:
单元测试:
由于效果返回的操作“getVendorsSuccess”填充了正确的数据,我怀疑问题出在这部分:
任何建议将不胜感激
angular - 如何使用茉莉弹珠测试 Observable 订阅中的代码
我有一个组件订阅从 ngOnInit 中的服务返回的 observable。我也有方法(updateData),它从服务订阅 observable,但也更新订阅中的一些属性。我需要创建一个测试来检查调用 updateData 时此属性是否更改为正确的值。
组件片段:
测试设置
我想添加那些缺失的行,以便测试通过。任何帮助,将不胜感激。
rxjs - RxJS 测试:大理石测试混淆案例
我正在向我的 angular/rxjs 项目添加单元测试,并且我正在使用该marble test
解决方案。而且由于我使用的是较新版本的 rxjs,所以我使用了内置的“TestScheduler”模块。
我正在关注这篇文章:https ://brianflove.com/2018/06/28/ngrx-testing-effects/ ,它举了一个例子如下:
单元测试如下:
我可以理解这里的逻辑(大理石字符串)期望一个令人困惑的点:
为什么不--b|
呢?由于响应 observable|
在 cold('-a|', { a: user });
.
顺便说一句,在这篇文章中,它将使用第三方库,但我使用的是原生库,TestScheduler
并且结果相同。
ngrx-effects - 如何正确使用 jasmine-marbles 测试 ofType 中的多个操作
我有一个效果,每次它接收一个以上“种类”的动作时都会调用它
myEffect.effect.ts
在我的测试中,我试图“模拟两种不同的动作,但我总是以错误告终,而如果我尝试使用一个动作,它就可以完美运行
在每个部分之前
这完美地工作
这不起作用
angular - Angular Unit Test:如何使用大理石测试(rxjs/testing)来测试这个状态管理服务
在我的 Angular 项目中,我有一个服务,用于状态管理以在组件之间共享一些数据,如下所示:
状态管理基于 subject 和 observable,这是 rxjs 世界中的典型用法。
对于此服务的单元测试,我想使用rxjs/testing
模块支持的大理石测试功能。解决方案如下:
但是第二个单元测试失败并出现错误:Error: Expected $.length = 0 to equal 1.
所以这意味着nameStateService.filteredNames$
,这个 observable 在它的流中没有值。
这里有什么问题?
angular - 可观察到的特殊结果:使用 Jasmine 弹珠进行测试
我正在使用 Jest 测试 Angular 7 中的一个小功能。该函数如下所示:
如您所见,目前它所做的只是从其输入创建一个可观察对象,但它正在开发中并将被扩展。
我正在像这样用 Jest 测试它:
但是,由于一些时间问题,测试失败了。可expected
观察的结果如下所示:
从函数调用创建的 observablehotspotService['checkFreeProduct'](allowance)
如下所示:
现在我不完全确定为什么这些可观测物会产生两种排放,但我会同意的。我不明白为什么函数调用中的 observable 会在第 0 帧上发出两个事件。我都尝试过hot()
and cold()
,并在这些调用中尝试了各种弹珠,但没有任何乐趣。有人可以解释一下吗?
angular - Jasmine Marbles 的单元测试不包括代码覆盖率报告中的代码
当我使用 Jasmine 弹珠对 margeMap 和 switchMap 进行单元测试时,这些特定块不会包含在代码覆盖率报告中。
有没有办法对 margeMap 和 switchMap 块进行单元测试,以便在代码覆盖率报告中涵盖它们?