lem*_*m1x 5 javascript unit-testing reactive-extensions-js rxjs
我正在使用 RxJs 来计算特定时间窗口内到达的数据包数量。我的代码基本上是这样的:
var packetSubject = new Rx.Subject();
var packetsInWindow = [];
function startMonitoring() {
var subscription = packetSubject
.windowWithTime(1000)
.select(function(window) {
window.toArray().subscribe(function(elements) {
packetsInWindow.push(elements.length);
});
})
.subscribe();
}
function newPacket(packet) {
packetSubject.onNext(packet);
}
Run Code Online (Sandbox Code Playgroud)
如何使用 Rx TestScheduler 对这段代码进行单元测试?我找不到任何合适的示例来测试主题。
小智 4
看看这个例子:
var x = 0,
scheduler = new Rx.TestScheduler();
var subject = new Rx.Subject();
subject.throttle(100, scheduler).subscribe(function (value) {
x = value;
});
scheduler.scheduleWithAbsolute(0, function () {
subject.onNext(1);//trigger first event with value 1
});
scheduler.scheduleWithAbsolute(50, function () {
expect(x).toEqual(0);//value hasn't been updated
});
scheduler.scheduleWithAbsolute(200, function () {
expect(x).toEqual(1);//value update after throttle's windowDuration
});
scheduler.start();
Run Code Online (Sandbox Code Playgroud)
https://emmkong.wordpress.com/2015/03/18/how-to-unit-test-rxjs-throttle-with-rx-testscheduler/
| 归档时间: |
|
| 查看次数: |
4618 次 |
| 最近记录: |