Функция тестирования Jest / Enzyme / Reactjs, используемая компонентом реагирования - PullRequest
0 голосов
/ 07 января 2019

Привет, у меня есть эта функция (apiCall), которая вызывает API внутри компонента и использует данные для обновления состояния (чтобы затем отобразить диаграмму с помощью chartjs). Я хочу специально протестировать процесс внутри componentDidMount, который обновляет состояние без вызова API. После большого количества времени, потраченного на поиски способа насмешки, я все еще не смог понять это. Попытка подтвердить измененное состояние из фиктивной функции apiCall.

это функция apiCall:

const apiCall = (uri) => {
    return fetch(uri)
      .then( (res) => {
         return res
      })
      .catch( (ex) => {
         return 0
      })
 }

 export default apiCall;

// and this is the componentDidMount

componentDidMount() {
      apiCall(this.props.uri)
      .then((result) => result.json())
      .then((result) => {
        this.setState({ data: result });
      })
      this.setState({ legend: this.props.legend })
  }

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Используйте функцию proxyquire и фиктивного обещания

0 голосов
/ 08 января 2019

Один из вариантов - использовать fetch-mock

http://www.wheresrhys.co.uk/fetch-mock/

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