У меня есть компонент функции, и я могу экспортировать некоторые функции входа в другой файл для независимого теста, но некоторые функции в этом компоненте функции не могут этого сделать, потому что у них есть ловушка 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}
/>
)
}