Модульный тест к Mock объекту для работы - PullRequest
0 голосов
/ 12 марта 2020

Как передать событие Проверить объект и получить подтверждение

onCallFunction() {
      const eventValue = event;
            if (!eventValue.relatedTarget || !eventValue.relatedTarget.last.contain('value')) {
                super.onCallFunction();
            }
     }

В Testbed объявить событие const, но не смог понять, как передать функции для выполнения кода

describe('relatedTarget test', () => {
  compoenent = fixture.componentInstance;

  it('should have value for property newValue', () {
    spyOn('component', 'onCallFunction');
    const event = {event: 
    { 
    relatedTarget: 
    {
     last: { 
      contain: (param) => {} 
     } 
    }
    }};
    component.onCallFunction();
    expect(component.onCallFunction).toHaveBeenCalled();
  })

});

1 Ответ

0 голосов
/ 12 марта 2020

Прежде всего, вы не правильно написали «компонент», поэтому измените объявление на:

component = fixture.componentInstance;

Вы также должны заключить эту строку в beforeEach следующим образом:

beforeEach(() => {
  component = fixture.componentInstance;
});

Затем измените вашего шпиона так, чтобы он действительно шпионил за функцией, и объявите его как переменную:

const spy = spyOn<any>(component, 'onCallFunction');

и измените ожидание, чтобы фактически спрашивать шпиона, был ли он вызван:

expect(spy).toHaveBeenCalled();

Теперь тест должен пройти, когда вы вызываете component.onCallFunction () и ожидаем, что он был вызван, но у меня возникли проблемы с пониманием того, для чего предназначена переменная "event"? Что вы на самом деле пытаетесь проверить здесь?

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