Как проверить функцию с помощью ловушки useRef в компоненте функции с помощью jest или любого другого инструмента? - PullRequest
0 голосов
/ 12 марта 2019

У меня есть компонент функции, и я могу экспортировать некоторые функции входа в другой файл для независимого теста, но некоторые функции в этом компоненте функции не могут этого сделать, потому что у них есть ловушка useRef (или как переменная экземпляра), когда я Запустите тестирование с охватом, эти функции не всегда можно протестировать, как я могу протестировать такую ​​функцию, я попытался использовать какой-то способ, например .getInstance () API, в jest, но это не похоже на работу, потому что компонент функции не является класс, так что функция в компоненте функции не является свойством класса

const ListStackConatiner = (props) => {

  const { onConfirmInputDialog, onCancelInputDialog } = props
  const [ inputValue ] = useRef("")
  const [ state, dispatch ] = useReducer(reducer, props, init)
  // state
  const { topStackItems, bottomStackItems, open } = state

  const stacks = [{
    type: 'MOVE_ITEM_FROM_TOP_TO_BOTTOM',
    items: topStackItems
  },{
    type: 'MOVE_ITEM_FROM_BOTTOM_TO_TOP',
    items: bottomStackItems
  }]

  const onChangeInput = (e) => {
     const { target } = e
     const { value } = target
     inputValue.current = value
  }

  const onConfirm = () => {
    onConfirmInputDialog && onConfirmInputDialog(inputValue.current)
    dispatch({type: "CLOSE_INPUTDIALOG"})
  }

  const onCancel = () => {
    onCancelInputDialog && onCancelInputDialog(inputValue.current)
    dispatch({type: "CLOSE_INPUTDIALOG"})
  }

  return(
    <TextInput
      onChangeInput={onChangeInput}
      onConfirm={onConfirm}
      onCancel={onCancel}
    />
    )
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...