Проверка разрешения и отклонения функции

#reactjs #jestjs #enzyme

#reactjs #jestjs #фермент

Вопрос:

Запуск теста с использованием Jest и Enzyme. В данный момент тест проходит, но некоторые строки были закрыты, когда я запускал тестовое покрытие npm, но последние несколько строк отсутствуют

 patchSourceEntity = () => {
  return new Promise((resolve, reject) => {
    let SourceEntityBody = {
      FirmID: this.props.FirmId,
      Name: this.state.Name,
      ShortName: this.state.ShortName,
      SourceEntityTypeID: this.state.SourceEntityTypeID ? this.state.SourceEntityTypeID.value : null
    };

    fetch(`${this.props.services.MasterDB.URL}/SOURCE_ENTITY?id=${this.props.entityToEdit}`, {
      headers: {
        'Content-Type': 'application/json',
        'Ocp-Apim-Subscription-Key': this.props.services.MasterDB.subscription_key,
        DDHFirm: this.props.user.DDHFirm,
        'x-universal-firm': this.props.FirmId
      },
      method: 'PATCH',
      credentials: 'include',
      body: JSON.stringify(SourceEntityBody)
    })
      .then(res => {
        return validationManager.ResolveHTTPResponse(res, 'Request Successful', 'Request Failed', false);
      })
      .then(response => {
        if (!response.error) {
          resolve();
        } else {
          reject();
        }
      });
  });
};
  

Я издеваюсь над функцией :

и вызвал функцию:

 const patchSourceEntity = jest.fn(() => {
  return new Promise((resolve, reject) => {
    resolve();
  });
});
  
 expect(wrapper.find('SourceEntityForm').instance().patchSourceEntity()).toBeDefined()
  

Что еще я мог бы добавить в свой тест, чтобы выполнить его на 100 %

Комментарии:

1. Если вы издеваетесь над функцией, как вы думаете, что именно вы тестируете?

2. замените то, что мы не контролируем, на то, что мы делаем — например, перехватываем вызовы или устанавливаем возвращаемые значения

3. Вот почему вы бы использовали mocking в целом, но если вы издеваетесь над тем, что тестируете, что остается?

4. я новичок в тестировании, просто интересно, как бы я тогда протестировал (response => { if(!response.error) { resolve(); } else { reject(); например

5. fetch Функция была бы более полезной для моделирования.