我正在学习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();