reactjs - 语法错误 : Unexpected token, 预期 "</>"

标签 reactjs react-testing-library

添加这个问题是因为我在网上不容易找到答案。

我正在尝试使用 react-testing-library测试组件是否正确呈现。然而,我收到了很多似乎没有多大帮助的错误。

这是我的测试文件( report.test.ts ,以及代码中的组件):

import { render } from "react-testing-library";
import "jest-dom/extend-expect";
import Report from "./Report";

test("component", () => {
  const reportData = {
    name: "test-report-name",
    url: "test-url"
  };
  const { getByText } = render(<Report report={reportData} />);

  expect(getByText("test-report-name")).toHaveAttribute("href", "test-url");
});

当我尝试运行测试时,出现错误 SyntaxError: Unexpected token, expected "</>" . VS Code 中有一条红色波浪线,悬停时显示 Argument of type 'Report' is not assignable to parameter of type 'ReactElement<any>' .

即使我将 Report 标签更改为简单的 <div /> ,然后我得到 Cannot find name 'div' .

我的测试有什么问题?

最佳答案

测试文件扩展名应被识别为使用 React 语法的文件(例如 tsx),并且 React 应使用 import React from "react";.

使用JSX语法时,似乎必须在文件中定义React,并且文件类型必须被识别为使用React的文件类型。因此,如果测试文件具有 js 扩展名,则可能需要进行类似的更改。

关于reactjs - 语法错误 : Unexpected token, 预期 "</>",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53305638/

相关文章:

reactjs - 鼠标悬停事件触发的测试样式

reactjs - react Jest : trigger 'addEventListener' 'message' from tests

reactjs - 如何获取renderHook的返回值

reactjs - react native : How to combine external and inline styles?

android - react-native gradle config 和 react-native-firebase 最新版本不匹配

javascript - 修改非子 react 组件的状态数据

reactjs - 如何对使用 react-testing-library 进行异步数据加载的组件进行快照测试?

javascript - react <a> 标签和按钮 onClick 传播

javascript - 如何在我的主页中添加用nextjs编写的html和css

reactjs - 使用 React 测试库指南进行单元测试 Redux 工具包