gpt4 book ai didi

javascript - Jest 快照测试错误 : You should not use outside a

转载 作者:行者123 更新时间:2023-11-28 20:26:17 24 4
gpt4 key购买 nike

我想为我的 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()
})

我知道这是因为 Footer组件使用 Link来自 react-router-dom .为了解决这个问题我包装了Footer BrowserRouter 中的组件:

const tree = renderer
.create(
<BrowserRouter>
<Footer />
</BrowserRouter>
)
.toJSON()

但现在它抛出错误: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()
})

关于javascript - Jest 快照测试错误 : You should not use <Link> outside a <Router>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55791828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com