Свойство ошибки не существует в угловых - PullRequest
0 голосов
/ 04 мая 2018

У меня есть числовой тип, инициализированный в начале моего класса компонентов, например: Мой класс компонентов:

import { .....


@Component({
   ....
})
export class JhiLoginModalComponent implements  OnInit {
   
    a: number;
 

   
    ngOnInit() {
      this.method();

    }
    method() {
     a=3;
    }

Мой тестовый класс:

import {...

  describe('LoginComponent', () => {
  
    let comp: ComponentClass;
        let fixture: ComponentFixture<ComponentClass>;
          beforeEach(async(() => {
            TestBed.configureTestingModule({
              ............
        }));
        
          beforeEach(() => {
            fixture = TestBed.createComponent(ComponnetClass);
            comp = fixture.componentInstance;
            ....
              });
              //MY TEST
                it ('Should print a value', async(() => {
fixture.detectChanges();
            console.log('lalalalla' + comp.method.a); //It prints lalalaundefined
            
        }));

Возвращает undefined, когда я печатаю domElement, и ошибка: Свойство a не определено для типа any

Я делаю ошибку в инъекции ?? Как я могу получить доступ к компонентам в противном случае? Если я использую этот номер позже, он говорит, что он не определен.

1 Ответ

0 голосов
/ 04 мая 2018

ngOnInit не вызывается при создании компонента. Это угловой механизм, который вызывает его, когда компонент готов к использованию (входные данные установлены, включая привязанные к данным свойства). Добавьте console.log к ngOnInit и вы увидите, что он не вызывался до console.log в вашем тесте. Сначала вам нужно позвонить fixture.detectChanges().

РЕДАКТИРОВАНИЕ (на основании вашего комментария):

Я только что понял. Вы регистрируете comp.method.a, но comp.method - это функция, поэтому у нее нет свойства a. Вы должны войти comp.a:

console.log('lalala' + comp.a);
...