Сначала вы можете упростить это:
export default class NewQuestion extends React.Component < Props & RouteComponentProps > {
, чтобы быть только:
export default class NewQuestion extends React.Component < Props > {
since props already includes the ReactRouter props.
Ошибка, которую вы видите, потому что вы не предоставили необходимые реквизиты (вам нужен маршрут props и onSave, поскольку вы не указали их как опциональные).
Для реквизитов маршрута я рекомендую использовать обертку Router (см. здесь: https://testing-library.com/docs/example-react-router#__docusaurus), а для onSave просто передайте jest .fn () (тогда вы можете делать утверждения, если он вызывался и с какими параметрами.)
Полный пример:
import NewQuestion from './NewQuestion'
import React from 'react'
import { Router } from 'react-router-dom'
import { createMemoryHistory } from 'history'
import { render, fireEvent } from '@testing-library/react'
import '@testing-library/jest-dom/extend-expect'
import { LocationDisplay, App } from './app'
test('NewQuestion', () => {
const history = createMemoryHistory()
const { getByPlaceholderText, getByText } = render(
<Router history={history}>
<Route render={(props) => <NewQuestion {...props} onSave={jest.fn()}} /> />
</Router>
)
})
Надеюсь, это поможет.