Javascript 如何测试RxJS事件
我使用Javascript 如何测试RxJS事件,javascript,rxjs,rxjs5,rxjs-dom,Javascript,Rxjs,Rxjs5,Rxjs Dom,我使用Observable.fromEvent()和各种链式操作符处理鼠标悬停事件。我如何进行单元测试呢 export const bindMouseover = (link) => Observable.fromEvent(link, 'mouseover') .filter(event => Nav.hasSubNav(event.target)) .map(event => Nav.getSubNav(event.target)) .filter(
Observable.fromEvent()
和各种链式操作符处理鼠标悬停事件。我如何进行单元测试呢
export const bindMouseover = (link) => Observable.fromEvent(link, 'mouseover')
.filter(event => Nav.hasSubNav(event.target))
.map(event => Nav.getSubNav(event.target))
.filter(target => !Nav.elementIsVisible(target))
.subscribe((target) => {
Nav.hideElements(subNavs);
Nav.showElement(target);
});
RxJS 4文档中有一章是关于测试RxJS链的,但这些原则也适用于RxJS 5: 如果您想对RxJS自定义操作符或操作符链进行单元测试,有官方文档(但是,本文档没有告诉您可以在何处导入代码中列出的功能) 另外,看看RxJS本身是如何测试的。例如(顺便说一句,这些是
mocha
tests)。请注意,使用这个简短的符号Cold('--1--2--3--|')
是如何进行热观测和冷观测的,然后使用
如果您还想将短符号与cold(…)
、hot(…)
和其他符号一起使用,您需要获取源代码,使用npm run build\u test
编译它,然后使用与原始代码相同的mocha
选项。和的默认选项。我现在不知道有什么更简单的解决办法
简短的符号只是让事情变得更容易和更可读,但实际上你并不需要它。您已经可以使用常规测试可观察对象(TestScheduler
、ColdObservable
和HotObservable
),因为它们是标准rxjs
包的一部分。(node_模块/rxjs/testing
)
另请参见:嘿!谢谢你的回答!是否有可能以某种方式使rxjs从真实元素事件中工作?我是说。我将在元素中触发一些事件,我希望从
observable.fromEvent
生成的RxJS observable将发出一些数据。有可能吗?