运行以下测试文件时出现以下错误:
// TestComp.test.tsx
import React from "react";
import { TextInput, View } from "react-native";
import { render, fireEvent } from "@testing-library/react-native";
const TestComp = () => {
return (
<View>
<TextInput testID="test-input" onChangeText={(txt) => console.log(txt)}></TextInput>
</View>
);
};
describe("Testcomp", () => {
afterEach(() => {
jest.clearAllMocks();
});
test("test me", async () => {
const { getByTestId } = render(<TestComp />);
const testInput = getByTestId("test-input");
fireEvent.changeText(testInput, "hello");
});
});
运行yarn jest
时出错:
Details:
/mnt/ubuntu/home/richardwu/code/topspin/src/components/TestComp.test.tsx:46
return (<react_native_1.View>
^
SyntaxError: Unexpected token '<'
at compileFunction (node:vm:355:18)
如果我将文件更改为jsx
,错误就会消失。问题是我将要导入的组件将在tsx
文件中,所以理想情况下,我希望jest
能够运行tsx
文件。
我已经按照使用jest设置typescript的说明进行了操作,其中有以下配置文件:
一个一个二个一个一个一个三个一个一个一个一个一个四个一个
2条答案
按热度按时间laximzn51#
因为你已经在使用Babel和
@babel/preset-typescript
,你可以更新你的Jest配置,让它对JavaScript和TypeScript文件都使用babel-jest
。只需将你的transform
正则表达式更新为以下内容。有了这个更改,您就可以从项目中卸载
ts-jest
,因为它将不再被使用。wz3gfoph2#
在我的案例中,使用
npm i -D ts-jest
安装ts-jest并进行如下配置: