У меня есть приложение реагирования, которое использует реаги-редукс, для выбора данных из хранилища используйте функцию «Выбор». У компонента реагирования есть
function PersonDataView() {
const name= useSelector(state => state.data.name)
const dob= useSelector(state => state.data.dob)
const dispatch = useDispatch()
const show= () => dispatch({type: 'SHOW'})
const remove= () => dispatch({type: 'REMOVE'})
return (
<div>
<h2>Person Details</h2>
<div>
<button onClick={show}>Show</button>
<span aria-label="name">{name}</span>
<span aria-label="dob">{dob}</span>
<button onClick={remove}>Remove</button>
</div>
</div>
)
}
Я использую библиотеку реагирования для тестирования этого компонента. Существует ли какой-либо API, который облегчает нам тестирование этих компонентов? Я знаю два способа их проверки: 1) Я могу смоделировать хранилище, используя redux-mock-store, а затем обернуть этот компонент компонентом провайдера. 2) смоделируйте метод useSelector в jest
jest.mock('react-redux', () => ({
useSelector: () => ({
})
});
Но проблема использования jest mock заключается в том, что в случае множественного селектора все useSelectors будут возвращать одно и то же смоделированное значение. Используя шутливый способ насмешки, jest.fn (). MockReturnValueOnce () не выглядит правильным для меня.