Написание тестовых случаев с использованием Jest и Enzyme - PullRequest
0 голосов
/ 20 ноября 2018

Я работаю над написанием тестовых случаев для проекта.Я пишу тест для моего контейнера.Контейнер имеет функцию, которая показана ниже:

getContactDetails = (reqObject) => {
    app.outageCenterService.getContact(reqObject).then(
      response => {
        app.logger.getLogger().info('Below is the response...');
        app.logger.getLogger().info(this.state.contactDetails);
        this.setState({contactDetails: response.contactDetails},()=>{});
        if (this.state.contactDetails.isContactPresent) {
          this.setState({ isVisible: true });
        } else {
          this.setState({ isVisible: false });
        }
      },
      reject => {
        app.logger.getLogger().info(reject);
      }
    );
  }

Во время выполнения теста в функции строка app.outageCenterService.getContact(reqObject) выдает ошибку, сообщающую TypeError: Cannot read property 'getContact' of undefined.Я понимаю это, потому что outageCenterService определяется глобально, и шутка / фермент не может его найти.Но я не знаю, как решить эту проблему.

Мой тест выглядит примерно так:

  describe('test the OutageAlert Component', () => {
    let outageAlert, errorHandlerFn;
    errorHandlerFn=jest.fn();
    getContactFn=jest.fn();
    outageAlert = shallow(<OutageAlertComponent errorHandler={errorHandlerFn} getContact={getContactFn} />);
  });

Может кто-нибудь, пожалуйста, помогите мне с этим о том, как написать тест для этогосценарий

1 Ответ

0 голосов
/ 20 ноября 2018

Вы можете использовать глобальные настройки

http://facebook.github.io/jest/docs/api.html#globals-object или создать файл и

и создать глобальный шутку для вас, тогда вы можете получить к нему доступ из своегоtest.

В качестве альтернативы вы можете указать, чтобы ваш контейнер принимал аргумент для вашего контакта

getContactDetails = (reqObject, contact) => { ...}

, чтобы вы могли передать его в своем тесте и везде, где используется ваш контейнер.

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