React Testing Library - TypeError: actImplementation is not a function
React Testing Library - TypeError: actImplementation is not a function
尝试对此组件进行简单测试时出现类型错误:actImplementation 不是函数
import React from 'react';
import { StyledHeaderContainer, StyledTitle } from './styled';
export const Header = () => {
return (
<StyledHeaderContainer>
<StyledTitle data-testid='title-test-id'>Subject Access Request</StyledTitle>
</StyledHeaderContainer>
);
};
这是我的测试
import * as React from 'react';
import 'jest-styled-components';
import { render, screen } from '@testing-library/react';
import { Header } from '../';
import "@testing-library/jest-dom";
describe('Header', () => {
it('is rendered correctly', () => {
expect(<Header />).toMatchSnapshot();
});
});
describe('Title', () => {
it('should have correct text', () => {
render(<Header />);
expect(screen.getByTestId('title-test-id')).toHaveTextContent('Subject Access Request');
})
})
它指向 render(<Header /)
作为问题
有人有什么想法吗?
您没有正确导入页眉将导入更改为:
import { Header } from '../Header';
(或导出 Header 组件的任何文件)
此外,您的第一个测试未渲染组件,因此测试失败。
改为:
it('is rendered correctly', () => {
render(<Header />);
expect(<Header />).toMatchSnapshot();
});
我在使用 react@17
、react-dom@18
和 @testing-library-react@13
时遇到了同样的错误。将 react
升级到 18
解决了问题。
好的,经过多次试验和错误后,结果证明这是一个简单的修复。我在我的测试中应用了这个导入但不是组件
import * as React from 'react';
尝试对此组件进行简单测试时出现类型错误:actImplementation 不是函数
import React from 'react';
import { StyledHeaderContainer, StyledTitle } from './styled';
export const Header = () => {
return (
<StyledHeaderContainer>
<StyledTitle data-testid='title-test-id'>Subject Access Request</StyledTitle>
</StyledHeaderContainer>
);
};
这是我的测试
import * as React from 'react';
import 'jest-styled-components';
import { render, screen } from '@testing-library/react';
import { Header } from '../';
import "@testing-library/jest-dom";
describe('Header', () => {
it('is rendered correctly', () => {
expect(<Header />).toMatchSnapshot();
});
});
describe('Title', () => {
it('should have correct text', () => {
render(<Header />);
expect(screen.getByTestId('title-test-id')).toHaveTextContent('Subject Access Request');
})
})
它指向 render(<Header /)
作为问题
有人有什么想法吗?
您没有正确导入页眉将导入更改为:
import { Header } from '../Header';
(或导出 Header 组件的任何文件)
此外,您的第一个测试未渲染组件,因此测试失败。
改为:
it('is rendered correctly', () => {
render(<Header />);
expect(<Header />).toMatchSnapshot();
});
我在使用 react@17
、react-dom@18
和 @testing-library-react@13
时遇到了同样的错误。将 react
升级到 18
解决了问题。
好的,经过多次试验和错误后,结果证明这是一个简单的修复。我在我的测试中应用了这个导入但不是组件
import * as React from 'react';