kax*_*993 3 javascript testing reactjs jestjs enzyme
我想为我的Footer
组件编写快照测试,但它抛出错误:You should not use <Link> outside a <Router>
。这是我的代码:
import React from 'react'
import renderer from 'react-test-renderer'
import Footer from '../footer'
it('Footer renders correctly', () => {
const tree = renderer
.create(<Footer />)
.toJSON()
expect(tree).toMatchSnapshot()
})
Run Code Online (Sandbox Code Playgroud)
我知道发生这种情况是因为Footer
组件使用Link
from react-router-dom
. 为了解决这个问题,我将Footer
组件包装在BrowserRouter
:
const tree = renderer
.create(
<BrowserRouter>
<Footer />
</BrowserRouter>
)
.toJSON()
Run Code Online (Sandbox Code Playgroud)
但现在它抛出错误:Browser history needs a DOM
我使用了MemoryRouter
它BrowserRouter
,它解决了问题。
import React from 'react'
import { MemoryRouter } from 'react-router-dom'
import renderer from 'react-test-renderer'
import Footer from '../footer'
it('Footer renders correctly', () => {
const tree = renderer
.create(
<MemoryRouter>
<Footer />
</MemoryRouter>
)
.toJSON()
expect(tree).toMatchSnapshot()
})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1326 次 |
最近记录: |