還有的是一個警告夫婦,但你可以測試你的功能如下:
const Rx = require('rxjs');
const chai = require('chai');
function timeRange(start, end, interval = 1000, scheduler = Rx.Scheduler.async) {
return Rx.Observable.interval(interval, scheduler)
.map(n => n + start)
.take(end - start + 1)
}
let scheduler = new Rx.TestScheduler(chai.assert.deepEqual);
let source = timeRange(2, 8, 50, scheduler);
let values = {'2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8};
scheduler.expectObservable(source).toBe('-----2----3----4----5----6----7----(8|)', values);
scheduler.flush();
有幾點要注意:
您可以測試失敗,通過改變一個大理石值:
let values = {'2': 42, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8};
此外,您還可以看到該通知的對象是什麼將它們打印到控制檯:
let scheduler = new TestScheduler((actual, expected) => {
console.log('Actual:', actual, '\n\n', 'Expected:', expected);
chai.assert.deepEqual(actual, expected);
});
使用RxJS 5 mocha
幫手
此刻RxJS 5並未公開mocha
測試助手。我實際上正在使用它在我正在處理的另一個項目中(包括生成圖表圖像)。你可以看看這裏https://github.com/martinsik/rxjs-extra到package.json
我正在使用什麼腳本。它運行良好,但設置有點難以理解。它包括下載RxJS 5歸檔文件,複製一些文件並使用couple of files進行修補。然後mocha
測試的默認選項設置mocha.opts
這是基於從RxJS 5原來。
對不起,我應該澄清。我正在使用rxjs 5.你知道rxjs 5的等價物嗎?您提供的鏈接是rxjs 4. – khoomeister
沒有更新的文檔,但類型仍然存在。例如。 '從'rxjs/testing/TestScheduler'中導入{TestScheduler} –