Как получить значение функции вложенных реквизитов для юнит-тестирования - PullRequest
0 голосов
/ 06 февраля 2019

У меня проблема с получением значения вложенной функции реквизита.

this.props.user.getPerson().getData()

getPerson возвращает новый объект с данными о человеке.

getDataвозвращает данные, связанные с персоной.

Он разделен для удобства чтения, и я хочу, чтобы он работал для модульного тестирования.

Тест 1:

 let _wrapper,
    initialProps

  beforeEach(() => {
    initialProps = {
      user: {
        getPerson: () => {}
      }
    }
    _wrapper = shallow(<Test1 {...initialProps} />)
  })
some tests...
})

Возвращено TypeError: Cannot read property 'getData' of undefined.

Test2

 let _wrapper,
    initialProps

  beforeEach(() => {
    initialProps = {
      user: {
        getPerson: () => { getData: () => {} }
      }
    }
    _wrapper = shallow(<Test2 {...initialProps} />)
  })
some tests...
})

Возвращено TypeError: Cannot read property 'getData' of undefined Та же ошибка, что и у Test1.

Я попытался получить значение функции props, передав функцию, однако она не работала свторая функция.

Как узнать значение вложенной функции реквизита?

1 Ответ

0 голосов
/ 06 февраля 2019

Вам нужно обернуть литералы объектов в скобки, чтобы вернуть их из функций стрелок :

initialProps = {
  user: {
    getPerson: () => ({ getData: () => { } })  // wrap in parentheses
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...