Aurelia路上。测试。 TypeError:config.addPipelineStep不是函数

时间:2016-07-27 13:45:58

标签: javascript testing aurelia aurelia-router aurelia-navigation

我使用默认的Aurelia sceleton-esnext更新到上一版本。 我将此行添加到App( Example from doc. Customizing the Navigation Pipeline

config.addPipelineStep('authorize', AuthorizeStep);

在此之后我发现错误正在运行' gulp test'

Chrome 52.0.2743 (Linux 0.0.0) the App module contains a router property FAILED
TypeError: config.addPipelineStep is not a function

测试

  it('contains a router property', () => {
    expect(sut.router).toBeDefined();
  });

测试进展顺利。

1 个答案:

答案 0 :(得分:0)

我刚刚遇到过这个问题。要修复,您只需要在您的RouterStub中添加一个空方法:

class RouterStub {
    configure(handler) {
        handler(this);
    }

    map(routes) {
        this.routes = routes;
    }

    addPipelineStep(stepName, stepClass) {
    }
}

然后在你的测试中:

describe('the App module', () => {
    var app;
    var mockedRouter;

    beforeEach(() => {
        mockedRouter = new RouterStub();
        app = new App();
        app.configureRouter(mockedRouter, mockedRouter);
    });

    it('contains a router property', () => {
        expect(app.router).toBeDefined();
    });
});

如果您正在尝试测试管道步骤,则需要模拟路由器本身并测试实际逻辑,但如果您只是希望运行测试(即定义,检查路由器标题等),会工作的。