问题标签 [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.
rxjs - 如何让一个rxjs弹珠同步分组只占用一帧
根据https://github.com/ReactiveX/rxjs/blob/master/doc/writing-marble-tests.md
那么我如何表示“在第 20 帧,发出 a、b 和 c,然后在第 40 帧完成。
即我怎样才能停止同步组本身占用帧?
testing - 使用 jasmine-marbles 的 ngrx/effects 单元测试
当我尝试使用其中一个cold
或hot
函数时jasmine-marbles
,我不断得到TypeError: Class constructor Observable cannot be invoked without 'new'
. 有人知道如何解决这个错误吗?这是我下面的内容。
jasmine - RxJS 使用 Jasmine Marbles 测试 catch 运算符总是失败
我想测试一下,如果一个 observable 从它的一个操作符内部捕获了一个抛出的错误,我会得到预期的结果 observable。
下面的服务根据其错误参数返回一个是否引发错误的可观察对象。
有了这个茉莉花测试
对于第二次失败的测试,我得到了下面的输出。
angular - 茉莉花大理石使用冷热的时间/框架问题
我有一个快速演示,人们可以在这里下载:https ://stackblitz.com/edit/angular-vczzqp只需点击右上角的导出,在您最喜欢的终端中,install
然后ng test
使用您最喜欢的浏览器运行。
对我来说,基本上问题似乎是 Jasmine 的内部时间与对象不匹配。
下面是测试以及我得到的确切错误。有关完整的测试类,请参阅 app/Test 下的示例
和错误
任何指导将不胜感激。
rxjs5 - 在 RxJS 中测试异步管道操作符
有时我们有函数,它使用延迟等异步运算符修改原始源。
让我们假设我们有一些非常简单的东西:
我正在使用弹珠来测试 RxJs,所以我的测试看起来像:
rxjs 库中用于测试的内容几乎相同:https ://github.com/ReactiveX/rxjs/blob/master/spec/operators/delay-spec.ts
但是我们必须修补 Observable.delay 函数,因为我们无法直接访问它。而且效果很好。
但我们决定开始使用 RxJs 中的可管道操作符。有什么想法如何测试这个功能:
可能看起来像?
rxjs - 无法从“jasmine-marbles.umd.js”中找到模块“rxjs/testing”
我目前想用 ngrx/effects 测试我的效果。我遵循了降价,但是当我想运行测试时出现错误。
这是我的代码(目前我没有做任何期望,我只想要我的测试运行):
这里是我的 package.json 的样子:
任何人都可以在这件事上帮助我吗?
rxjs - 如何测试使用 rxjs 弹珠发出分组事件的可观察对象?
根据rxjs marbles 文档,同步分组的当前行为如下:
从文档:
虽然一开始可能不直观,但在所有值同步发出后,时间将前进的帧数等于组中 ASCII 字符的数量,包括括号
好的,但是我如何测试这样的可观察对象(使用弹珠或任何其他技术):
有什么解决方法吗?
Stack Overflow 上有一个类似的问题,但没有关于“如何实际解决它并测试这种可观察的”的答案。
谢谢!
angular - 带有模拟用户输入的 RxJs/Ngrx TestSheduler (Jasmine)
我正在一个角度应用程序中测试 Ngrx 商店效果。作为副作用,我的一个效果有一个使用材质 MatDialog 组件弹出的模态。
我想要做的是运行一个测试,其中效果由一个动作启动,这会触发垫子对话框的出现。然后我想测试单击是/否,然后继续检查结果操作(或缺少操作)。
我们正在使用 rxjs-marbles 来测试我们的商店。
RxJs 似乎并没有大量的示例,但我收集到我需要使用 TestScheduler 来处理这种类型的场景。不过,我不确定它是如何工作的。我正在做很多研究,但没有取得很大进展。
基本上,作为大理石,它看起来像这样:
-a-b-c
其中a
是初始操作,b
是用户在对话框中的点击,c
是结果(c
是可选的,如果用户点击“否”,则不会有结果操作。
我不是要求任何人编写我的代码,只是为我指明正确的方向。我即将开始阅读 TestScheduler 的源代码以更好地理解它,因为我什至不确定在这种情况下是否应该使用它。
基本上,如何编写这样的测试,其中有可观察的流与使用弹珠的模拟用户输入相结合?
angular - NgRx Marbles 效果测试返回奇怪的错误
我有一个使用 NgRx 效果的 Angular 5 应用程序。其中一个效果通过将用户输入的数据传递到 NodeJS 后端来处理对网站的注册。效果完全按预期工作,但是当我尝试使用 Marbles 对其进行单元测试时,我收到了一个奇怪的错误。
这是效果:
这是 Marbles 的单元测试。它遵循 Todd Motto 的测试 NgRx 效果的指南。
最后,这是我在 Karma 中遇到的错误:
我从这个相当神秘的错误消息中推断出该trySignup
动作已被触发,但不是该unsuccessfulSignup
动作。有谁知道为什么会发生这种情况?
谢谢!