我在react-scripts@2.1.8
中将typescript@3.3.3
与jest@.23.6.0
结合使用并运行测试,但它们失败,并显示“未定义反应”。
FAIL src/components/Button/test.tsx
● <Button> › renders text correctly
ReferenceError: React is not defined
6 | it('renders text correctly', () => {
7 | const text = 'hello there i am a test'
> 8 | const { getByText } = customRender(<Button>{text}</Button>)
| ^
9 | expect(getByText(/hello there i am a test/)).toBeTruthy()
10 | })
11 | it('matches the snapshot', () => {
at Object.it (src/components/Button/test.tsx:8:44)
● <Button> › matches the snapshot
ReferenceError: React is not defined
10 | })
11 | it('matches the snapshot', () => {
> 12 | const { container } = customRender(<Button />)
| ^
13 | expect(container.firstChild).toMatchSnapshot()
14 | })
15 | })
at Object.it (src/components/Button/test.tsx:12:44)
Button.test.tsx:
import React from 'react'
import Button from '.'
import { customRender } from '../../test-utils'
describe('<Button>', () => {
it('renders text correctly', () => {
const text = 'hello there i am a test'
const { getByText } = customRender(<Button>{text}</Button>)
expect(getByText(/hello there i am a test/)).toBeTruthy()
})
it('matches the snapshot', () => {
const { container } = customRender(<Button />)
expect(container.firstChild).toMatchSnapshot()
})
})
还使用React import,就像将它从第1行移到第3行一样,有时似乎使测试通过。这很奇怪。