Ошибка тестирования снимка Jest: Вы не должны использовать <Link>вне <Router> - PullRequest
0 голосов
/ 22 апреля 2019

Я хочу написать тест снимка для моего 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

1 Ответ

0 голосов
/ 22 апреля 2019

Я использовал 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()
})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...