RxJs 5 ascii输出失败测试的输出

时间:2016-10-24 12:27:07

标签: unit-testing typescript rxjs5

我正在学习RxJS 5(发布候选人)。我在单元测试中使用ASCII marble diagrams

对于失败的测试,是否有内置函数来显示actual ASCII大理石字符串而不是深度相等的失败结果?似乎我必须理解并编写一个expected ASCII大理石字符串,这对于失败的测试显示实际的ASCII大理石字符串很有用。它有助于排除故障。

我希望有一个内置函数实际上与parseMarbles()相反。在搜索文档和源代码时,我还没有找到任何东西。

以下是我修改为Writing marble tests - anatomy of a test以获得失败测试的示例。它给出了以下输出:

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

我宁愿看到类似的东西:

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();

0 个答案:

没有答案