我有一个功能组件,我可以将一些登录功能导出到另一个文件中进行独立测试,但是此功能组件中的某些功能无法执行此操作,因为当我使用它们时,它们具有useRef钩子(或类似实例变量)用覆盖率进行测试,这些功能总是无法测试的,我该如何测试thouse类型的功能,我试图用.getInstance()API这样的方式开玩笑,但由于功能组件不是类,以便功能组件中的功能不是类的属性
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}
/>
)
}