Tidak dapat menjalankan pengujian rxjs-marbles yang paling sederhana

Pada instalasi ng new myapp yang benar-benar baru (cli versi 1.6.8, Angular 5.2.0, rxjs 5.5.6), saya menginstal kelereng rxjs.

Saya mengalami masalah dalam menjalankan pengujian paling dasar karena beberapa alasan konfigurasi. Adakah yang bisa memberi tahu saya apa yang salah?

import { TestBed, async } from '@angular/core/testing';
import { marbles } from 'rxjs-marbles/jasmine';
import { map } from 'rxjs/operators';
import { AppComponent } from './app.component';

describe('AppComponent', () => {
  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [
        AppComponent,
      ],
    }).compileComponents();
  }));

  it('should see mapped values', marbles(m => {
    const values = { a: 1, b: 2, c: 3, x: 2, y: 4, z: 6 };

    const source = m.cold('--a---b---c-|', values);
    const expected = m.cold('--x---y---z-|', values);
    const result = source.pipe(map(x => x * 2));
    m.expect(result).toBeObservable(expected);
  }));
});

Kesalahan konsol:

ERROR in ./node_modules/rxjs-marbles/esm5/marbles.js
Module not found: Error: Can't resolve 'rxjs/testing' in '/Users/armo/Code/rxjsmarbles/node_modules/rxjs-marbles/esm5'
 @ ./node_modules/rxjs-marbles/esm5/marbles.js 9:0-45
 @ ./node_modules/rxjs-marbles/esm5/jasmine/index.js
 @ ./src/app/app.component.spec.ts
 @ ./src \.spec\.ts$
 @ ./src/test.ts

ERROR in ./node_modules/rxjs-marbles/esm5/context-deprecated.js
Module not found: Error: Can't resolve 'rxjs/testing' in '/Users/armo/Code/rxjsmarbles/node_modules/rxjs-marbles/esm5'
 @ ./node_modules/rxjs-marbles/esm5/context-deprecated.js 10:0-45
 @ ./node_modules/rxjs-marbles/esm5/marbles.js
 @ ./node_modules/rxjs-marbles/esm5/jasmine/index.js
 @ ./src/app/app.component.spec.ts
 @ ./src \.spec\.ts$
 @ ./src/test.ts

ERROR in ./node_modules/rxjs-marbles/esm5/context-run.js
Module not found: Error: Can't resolve 'rxjs/testing' in '/Users/armo/Code/rxjsmarbles/node_modules/rxjs-marbles/esm5'
 @ ./node_modules/rxjs-marbles/esm5/context-run.js 1:0-45
 @ ./node_modules/rxjs-marbles/esm5/marbles.js
 @ ./node_modules/rxjs-marbles/esm5/jasmine/index.js
 @ ./src/app/app.component.spec.ts
 @ ./src \.spec\.ts$
 @ ./src/test.ts
ERROR in node_modules/rxjs-marbles/context.d.ts(1,22): error TS2305: Module '"/Users/armo/Code/rxjsmarbles/node_modules/rxjs/Rx"' has no exported member 'SchedulerLike'.
node_modules/rxjs-marbles/context.d.ts(2,31): error TS2307: Cannot find module 'rxjs/testing'.
node_modules/rxjs-marbles/types.d.ts(2,31): error TS2307: Cannot find module 'rxjs/testing'.

person user776686    schedule 20.08.2018    source sumber


Jawaban (1)


rxjs-marbles versi 3 dan lebih baru bergantung pada RxJS versi 6.

Jika Anda menggunakan RxJS versi 5, Anda harus menggunakan rxjs-marbles versi 2, versi terbarunya adalah 2.4.1.

Dan jika Anda menggunakan versi tersebut, untuk dokumentasi, Anda harus merujuk ke README di cabang versi tersebut, bukan README di master.

person cartant    schedule 20.08.2018