草庐IT

rxjs-test-scheduler

全部标签

javascript - 测试rxjs的正确方法

我带来了“rxjsinaction”这本书,刚刚完成了测试部分。测试rxjs代码与通常的测试不同,因为一切都是延迟加载。在书中,他们提到了两种测试方法,通过完成(我正在使用QUnit并且完成信号异步代码已完成)或大理石图。我的问题是,我应该选择上面提到的哪种方法? 最佳答案 我的同事经常问我这个问题。我终于抽出时间记录mywaysoftestingRxJsonmyblog.由于您的问题似乎与RxJs5有关,因此我只会在此处引用我帖子的相关部分。以RxJs4的方式在RxJs5中测试当您将代码库从RxJs4迁移到5时,您会发现很多东西已

javascript - RxJS 减少不会继续

为什么flatMap不会触发下游缩减?我得到的代码如下:handleFiles.flatMap(files=>Rx.Observable.from(files).flatMap((file,i)=>fileReader(file,i)).reduce((form,file,i)=>{form.append('file['+i+']',result);console.log('reducestep',file);returnform;},newFormData()).tap(console.log.bind(console,'afterreduce'))).subscribe(conso

javascript - 取消订阅 RxJS Observables

我有这两个对象,我想停止监听它们的事件。我对observables和RxJS完全陌生,只是尝试使用Inquirer库。RxJSAPI供引用:http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html如何取消订阅这些类型的可观察对象?ConnectableObservable:ConnectableObservable{source:EventPatternObservable{_add:[Function],_del:[Function],_fn:undefined},_connection:ConnectDispo

javascript - RxJS 中的同步性

我希望以下代码可以异步运行:varrange=Rx.Observable.range(0,3000000);range.subscribe(function(x){},function(err){},function(){console.log('Completed');});console.log('HelloWorld');但事实并非如此。遍历大范围的数字需要一段时间,只有完成后才会恢复执行,您可以尝试代码here.我对何时期望RxJS同步或异步行为感到困惑。这取决于使用的方法吗?我之前的想法是,一旦我们进入Observables/Observer领域,其中的所有内容都会异步运行,

javascript - 使用 Jest 时防止 "test/expect/etc is not defined"错误

Facebook的Jest测试框架很容易getstartedwith,butthedocumentation俯瞰一个annoyingaspect:任何试图警告undefinedsymbol的编辑器都会将测试语句突出显示为错误,因为未定义test、expect和所有匹配器方法。同样,尝试直接使用node运行测试文件将失败并显示ReferenceError:testisnotdefined。需要添加哪些require/import语句才能消除这些错误? 最佳答案 节点如果您想直接通过节点运行它们,请尝试要求jest和/或jest-run

javascript - RegExp.test 不工作?

我试图在javascript中使用Regex.test验证年份,但无法弄清楚为什么它返回false。varregEx=newRegExp("^(19|20)[\d]{2,2}$");regEx.test(inputValue)对于输入值1981、2007返回false谢谢 最佳答案 当您使用字符串表达式创建RegExp对象时,您需要加倍反斜杠以便它们正确转义。另外[\d]{2,2}可以简化为\d\d:varregEx=newRegExp("^(19|20)\\d\\d$");或者更好的是使用正则表达式文字来避免双反斜杠:varreg

javascript - RxJS 和 React 多次点击元素形成单个数据数组

所以我刚开始尝试学习rxjs并决定在我目前正在使用React开发的UI上实现它(我有时间这样做,所以我就去做了)。然而,我仍然很难理解它实际上是如何工作的……不仅仅是“基本”的东西,比如什么时候实际使用Subject和什么时候使用Observable,或者什么时候只使用React的本地状态,还有如何链接方法等等。但这太宽泛了,所以这是我遇到的具体问题。假设我有一个UI,其中有一个过滤器(按钮)列表,这些过滤器(按钮)都可以点击。每当我点击其中一个时,我首先要确保接下来的操作会去抖动(以避免太快和太频繁地发出网络请求),然后我想确保如果它被点击(事件),它将被插入一个数组,如果再次单击它

javascript - 如何从无限的 RxJs 流中获取不是初始值的单个最新值?

概念这是一个模拟的angular2项目。当使用来自redux存储的可观察流时,我尝试先过滤,然后获取/takeLast/last最新值。之后,我想在流完成时解决promise,但在使用takeLast运算符时却没有。所以问题是:我可以使用什么运算符设置来从流中获取最新值?设置我将我的Angular2设置简化为RxJs使用的要点。sourceobservable由redux库管理,未完成服务正在提供一些逻辑来从流中检索最新值组件是消费值(value)promise风格这是一个工作示例:https://fiddle.jshell.net/markus_falk/an41z6g9/redux

javascript - meteor JS : How to stub validated method in unit test

我正在使用经过验证的方法(mdg:validated-method)和LoggedInMixin(tunifight:loggedin-mixin)。现在我的单元测试出现了问题,因为它们因notLogged错误而失败,因为在单元测试中当然没有登录用户。我怎么必须stub呢?方法constresetEdit=newValidatedMethod({name:'reset',mixins:[LoggedInMixin],checkLoggedInError:{error:'notLogged'},//单元测试describe('resetEdit',()=>{it('shouldreset

javascript - 在另一个项目中使用 marble testing rxjs5 方法

我有一个webapp项目,它使用rxjs5来实现flux我目前正在寻找为其编写单元测试的解决方案。其实我已经在里面实现了自定义的observables,例如:functiongetActivityObservable(events,timeout){returnObservable.create((observer)=>{constdeb=debounce(()=>observer.next(false),timeout||DEFAULT_TIMEOUT);constsub=events.subscribe((e)=>{if(!e){deb.cancel();observer.next