enhetstesting - RxJs 5 ascii marbles-utdata for mislykket test


Jeg lærer RxJS 5 (release candidate). Jeg bruker ASCII-marmor-diagrammer i enhetstester.

For en mislykket test, finnes det en innebygd funksjon for å vise den faktiske ASCII-kulestrengen i stedet for resultatet av dyp likhet-feilen? Det virker som om hvis jeg må forstå og skrive en forventet ASCII-kulestreng, ville det være nyttig for en mislykket test å vise den faktiske ASCII-kulestrengen. Det vil hjelpe med feilsøking.

Jeg håper at det finnes en innebygd funksjon som effektivt er motsatt av parseMarbles(). Jeg har ikke funnet noe ennå når jeg har søkt gjennom dokumentasjonen og kildekoden.

Nedenfor er et eksempel hentet fra Writing marble tests - anatomy of a test som jeg endret for å få en feilende test. Det gir følgende output:

AssertionError: expected [ Array(5) ] to deeply equal [ Array(4) ]Error

Jeg vil heller se noe slik som:

AssertionError: expected "'---(be)----c-f-----|'" 
                to equal "'---(be)----c-------|'"

http://jsbin.com/hipepew/edit?js,output

mocha.setup('bdd');
const expect = chai.expect; 

describe('RXJS 5 Marbles', () => {
  it("basic anatomy of a failing test", () => {

    const rxTestScheduler: TestScheduler = new Rx.TestScheduler(function (actual, expected) {
      expect(actual).to.deep.equal(expected);
    });
    const e1 = rxTestScheduler.createHotObservable<string>('----a--^--b-------c--|');
    const e2 = rxTestScheduler.createHotObservable<string>('---d-^--e---------f-----|');
    const expectedFail = '---(be)----c-------|';//missing f at frame 130
    rxTestScheduler.expectObservable(e1.merge(e2)).toBe(expectedFail);
    rxTestScheduler.flush();

  });
});

mocha.run();

Relaterte artikler