I am using Jest and react-testing-library in React application. I have to test following scenario -
function Parent () { const [country, setCountry] = useState(true) return ( <Child setCountry={setCountry} /> ) } function Child () { const handleValueClear = () => { setCountry(false) const data = { id : 'IND', name : 'India' } dispatch(handleCountryDetails(data)) } return ( <div> <button onclick={handleValueClear}>Click me</button> </div> ) }
How to mock and test useState in jest ?
Your component
import React from 'react'
function Parent () {
const [country, setCountry] = React.useState(true)
return (
<Child setCountry={setCountry} />
)
}
function Child () {
const handleValueClear = () => {
setCountry(false)
const data = {
id : 'IND',
name : 'India'
}
dispatch(handleCountryDetails(data))
}
return (
<div>
<button onclick={handleValueClear}>Click me</button>
</div>
)
}
Jest file for Parent
test('useState mock', () => {
const initialState = true
React.useState = jest.fn().mockReturnValue([initialState , {}])
const wrapper = shallow(<Parent />)
// In this point your state set and you can test the rest
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.