我使用ReactJs, jest 和 react 測驗庫。我有這個代碼:
const App = ({data}) => {
const [state, setState] = useState(); // after useEffect runs state should be false
console.log('test state', state)
useEffect(() => {
setState(!data)
}, [])
return <p>'data is' {data},<p/>
}
<App data={12} />
在之后useEffect將運行state應該是false。現在我想使用 jest 和 react 測驗庫來測驗組件。
describe('App', () => {
beforeEach(() => {
const setValue = jest.fn(x => {});
React.useState = jest.fn()
.mockImplementationOnce(x => [x, setValue])
})
test('It should render the correct value', async() => {
const v = utils.queryByText(12)
expect(v).toBeInTheDocument()
})
})
})
當我在console.log('test state', state)第一次console.log('test state', undefined)和之后運行測驗時console.log('test state', false),但我只需要獲取該false值,因為第一次該值是undefined測驗失敗的事實。這該怎么做?
uj5u.com熱心網友回復:
您需要等到組件確實安裝,然后運行您的期望。在反應測驗庫中,有一個特殊的方法。waitFor.
來自 React 測驗庫


也許你有一些錯別字?

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/346281.html
標籤:javascript 反应
上一篇:如何將身體部位影像合并為一個
下一篇:如何僅在滾動時顯示滾動條
