2016-07-26 2 views
4

Я создаю приложение Angular2 с использованием Angular2 Cli. У меня есть notifications.component, который имеет конструктор, как этотУгловой 2 Поставляемые параметры не соответствуют какой-либо сигнатуре целевого вызова (spec.ts)

constructor(private _elRef: ElementRef) {} 

Когда я строю (начало НПМ) Я получаю эту ошибку

...angular2/tmp/broccoli_type_script_compiler-input_base_path-wKrIZXNv.tmp/0/src/app/notifications/notifications.component.spec.ts (10, 21): Supplied parameters do not match any signature of call target 

В файле notifications.component.spec.ts порожденную угловым cli такой вот

import { By }   from '@angular/platform-browser'; 
import { DebugElement } from '@angular/core'; 
import { addProviders, async, inject } from '@angular/core/testing'; 
import { NotificationsComponent } from './notifications.component'; 

describe('Component: Notifications',() => { 
it('should create an instance',() => { 
let component = new NotificationsComponent(); 
expect(component).toBeTruthy(); 
}); 
}); 

Однако, если я строю без параметра конструктора, все работает нормально. Если я добавлю этот параметр после сборки, все будет хорошо работать.

Что мне не хватает?

ответ

1

Посмотрите на эту строку let component = new NotificationsComponent();.

Вы не представили аргумент при создании нового объекта для NotificationsComponent, в то время как его конструктор ожидает объект типа ElementRef.

Вот почему вы строите без параметра конструктора, все работает нормально.

+0

Я заметил это, но я попытался предоставить аргумент, но любой из них не работает! Каково ваше предложение? –

+0

Если вашему 'NotificationsComponent' не нужно' ElementRef', просто удалите его из конструктора. В противном случае вам может потребоваться проверить, какие тестовые среды вы используете, и подать в него заглушку. –

+0

Я мог бы удалить, но я хотел бы знать, как это исправить! –

0

Привет, братец, там есть исправление temp, так как я вхожу в ту же проблему, и никто еще не может объяснить, как и для чего это происходит, но вы можете попробовать войти в notification.component.ts и сменить конструктор to: "constructor (private _elRef: any = ElementRef) {}" перезагрузите, затем измените его на то, что было

+0

Эй, приятель, tks для обмена этой идеей! Однако все еще возникает ошибка. zone.js: 463 Ошибка: нечистота (в обещании): Ошибка: ошибка: не удается разрешить все параметры для NotificationsComponent: (?). (...). Я прокомментировал весь код внутри уведомлений.components.spec.ts в настоящее время! –

Смежные вопросы

 Смежные вопросы