0

Я использую по умолчанию Aurelia's sceleton-esnext, обновленный до последней версии. я добавил эту строку в App ( Example from doc. Customizing the Navigation Pipeline)Aurelia. Тестирование. TypeError: config.addPipelineStep не является функцией

config.addPipelineStep('authorize', AuthorizeStep); 

После этого я ловлю ошибку работает 'тест Глоток'

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

Test

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

Тест будет хорошо без линии.

ответ

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

Если вы пытаетесь проверить шаг трубопровода вам нужно издеваться сам маршрутизатор и проверить фактическую логику, но если вы просто хотите, чтобы ваши тесты выполнялись (т. е. определялись, проверяли заголовок маршрутизатора и т. д.), это будет работать.