Я пытаюсь выяснить, как структурировать юнит-тест для следующего:
У меня есть куча существующих наблюдаемых и предметов, которые я хочу протестировать в проекте. Итак, я начал с того, что я бы назвал простым тестовым примером, использующим шарики RX js внутри jest:
const testScheduler = new TestScheduler((actual, expected) => {
expect(actual).toEqual(expected);
});
testScheduler.run(({cold, expectObservable}) => {
const inputSubject = new Subject();
const outputSubject = new Subject();
inputSubject.pipe(map(val => val * 2)).subscribe(outputSubject);
cold('a|', {a:1}).subscribe(inputSubject);
expectObservable(outputSubject).toBe('a|', {a:2});
});
}
Пока этот тест выполняется, он не проходит. У меня проблемы с пониманием результатов теста. Я хотел бы знать, что я делаю что-то не так, или я неправильно понимаю вещи вообще. Или, может быть, будет полезно какое-то объяснение результатов.
- Expected
+ Received
@@ -1,16 +1,7 @@
Array [
Object {
- "frame": 0,
- "notification": Notification {
- "error": undefined,
- "hasValue": true,
- "kind": "N",
- "value": 2,
- },
- },
- Object {
"frame": 1,
"notification": Notification {
"error": undefined,
"hasValue": false,
"kind": "C",
...... the code ......
at TestScheduler.assertDeepEqual (common/chat/newMessages/ratifiedSendMessages/twilioRatifiedSendMessages.unit.test.js:27:24)
at node_modules/rxjs/src/internal/testing/TestScheduler.ts:159:14
at Array.filter (<anonymous>)
at TestScheduler.Object.<anonymous>.TestScheduler.flush (node_modules/rxjs/src/internal/testing/TestScheduler.ts:157:39)
at TestScheduler.run (node_modules/rxjs/src/internal/testing/TestScheduler.ts:392:12)
at Object.<anonymous> (common/chat/newMessages/ratifiedSendMessages/twilioRatifiedSendMessages.unit.test.js:30:21)