Google ActivatedRouteStub имеет ошибку ниже Angular 8? - PullRequest
0 голосов
/ 28 апреля 2020

[узел: v10.15.3, пряжа: 1.22.4, @ angular / core: ^ 8.2.14]

Я пишу юнит-тест для компонента, который по сути выводит один из четырех вариантов :

<ng-container [ngSwitch]="code">
  <ng-template [ngSwitchCase]="'nocontainer'">
    <h1>Container Error</h1>
    <p>There has been an error connecting to your container. Please emulate a headless chicken.</a></p>
  </ng-template>
  <ng-template [ngSwitchCase]="'418'">
    <h1>I'm a teapot</h1>
    <p><img src="https://images-eu.ssl-images-amazon.com/images/I/41bbDR3wffL._SL500_AC_SS350_.jpg" alt="multi-coloured teapot" /></p>
  </ng-template>
  <ng-template [ngSwitchCase]="'401'">
   <h1>Not Authorized</h1>
   <p>Authorization is needed to access this resource. Please log in.</p>
  </ng-template >
  <ng-template [ngSwitchCase]="'403'">
    <h1>Access Forbidden</h1>
    <p>You are not permitted to access this resource</p>
  </ng-template >
  <ng-template ngSwitchDefault> <!-- 404 -->
    <h1>Page not found</h1>
    <p>The page you have requested cannot be found. Please check the URL and try again.</p>
  </ng-template>
</ng-container>

и управляющая машинопись читает:

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';

@Component({
  templateUrl: './error.component.html',
  styleUrls: ['./error.component.scss'],
})
export class ErrorComponent implements OnInit {

  code = '404';

  constructor(private route: ActivatedRoute) { }

  ngOnInit() {

    this.route.params.subscribe(params => {
      if (params.code) { // code is always a thing (an http error code or a string)
        this.code = params.code;
      }
    });
  }
}

Очевидное решение для тестирования это ActivatedRouteStub, как объяснено в angular документах и продемонстрировано в Angular тестировании Stackbiz .

Проблема, которую я получаю, заключается в том, что я получаю ошибку от этого ActivatedRouteStub класса:

ERROR in src/app/testing/testing-utils.ts(18,43): error TS2345: Argument of type 'Params | undefined' is not assignable to parameter of type 'Params'.
  Type 'undefined' is not assignable to type 'Params'.

Когда я пытаюсь для запуска тестов.

Кто-нибудь получил предложение, в чем проблема и как ее решить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...