Угловой испытательный роутер в Жасмине - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть метод, который проверяет, какой текущий URL-адрес, если URL-адрес '/', то он переходит на определенную страницу (/ test). Сам код работает, но у меня возникают проблемы с установкой URL в моих тестах, поэтому он проходит проверку «/». Когда я выхожу из консоли через URL, я получаю 'function () {...}' в моем тесте, но в браузере я получаю строку URL.

public determineLandingPage(): void {
  console.log(this.router.url)
  if (this.router.url == "/") {
    this.router.navigate(["/test"]);
  }
}

Тестовый файл ::

import { LandingPage } from './generate-landing-page';
import { RouterTestingModule } from '@angular/router/testing';
import { async, ComponentFixture, TestBed, inject } from '@angular/core/testing';
import * as TypeMoq from 'typemoq';
import { SpyLocation } from '@angular/common/testing';
import { Location, CommonModule } from '@angular/common';
import { Component } from '@angular/core';

@Component({
    template: ''
})
class TestComponent {}

describe('LandingPage Tests', () => {

    let routerMock : TypeMoq.IMock<Router>;
    let service : LandingPage;

    beforeEach( () => {
        routerMock = TypeMoq.Mock.ofType<Router>();


        TestBed.configureTestingModule({
            imports: [
                CommonModule,
                RouterTestingModule.withRoutes([
                    { path: '', component: TestComponent},
                ]),
            ],
            declarations: [ TestComponent ],
            providers: [{
                provide: Router,
                useFactory: () => {
                    return routerMock.object;
                }
            }
            ]
        }).compileComponents();

        service = new LandingPage(routerMock.object);
    });



    describe('determineLandingPage Tests', () => {
        it('should navigate to test', async() => {
            routerMock.setup(x => x.navigateByUrl('/'));
            service.determineLandingPage();
            routerMock.verify(x => x.navigate(TypeMoq.It.isValue(['/test'])), TypeMoq.Times.atLeastOnce());
        });
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...