Ошибка тестирования модуля Карма: Неожиданное значение, импортированное модулем.Пожалуйста, добавьте аннотацию @NgModule - PullRequest
0 голосов
/ 19 февраля 2019

Я создал новый новый компонент через:

ng g mytest1

Затем я изменил строку конструктора следующим образом:

constructor(private dialogRef: MatDialogRef<Mytest1Component>) { }

и добавил необходимый импорт:

import { MatDialogRef } from '@angular/material';

После этого я запустил проект модульного тестирования Karma с помощью:

ng test

Проверка не удалась.Я получил это сообщение об ошибке:

Ошибка: StaticInjectorError (DynamicTestModule) [Mytest1Component -> MatDialogRef]: StaticInjectorError (Платформа: ядро) [Mytest1Component -> MatDialogRef]: NullInjectorError: Нет провайдера!*

Чтобы исправить это, я добавил оператор Import в раздел beforeEach:

import { MatDialogRef } from '@angular/material';

//...

beforeEach(async(() => {
    TestBed.configureTestingModule({
        declarations: [ Mytest1Component ],
        imports: [MatDialogRef],
    })
    .compileComponents();
}));

Теперь я получил эту новую ошибку, которую я не могу исправить:

Сбой: неожиданное значение 'MatDialogRef', импортированное модулем 'DynamicTestModule'.Пожалуйста, добавьте аннотацию @NgModule.

Может кто-нибудь уточнить, где я должен добавлять аннотацию @NgModule, или я сделал что-то совершенно неправильное?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

используйте:

imports: [MatDialogModule],

вместо

0 голосов
/ 19 февраля 2019

Вы вводите MatDialogRef в компонент:

constructor(private dialogRef: MatDialogRef<Mytest1Component>) { }

Таким образом, testBed ожидает, что то же самое будет введено как provider в TestBed.Или вы также можете предоставить MockDialogueService к нему.

beforeEach(async(() => {
    TestBed.configureTestingModule({
        declarations: [ Mytest1Component ],
        providers: [ MatDialogRef ],
    })
    .compileComponents();
}));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...