我正在尝试设置一个 React Native/TypeScript 应用程序以使用 Jest 和进行测试@testing-library/react-native
;
到目前为止,我收到此错误:
Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: object.
以前我遇到了一个Missing class properties transform
错误,所以我添加@babel/plugin-proposal-class-properties
到已经包含在原始引导程序中的 Babel 配置中expo init
,但是一旦我这样做了,我就会得到另一个错误,到目前为止我没有尝试过任何工作。
这是我的 babel 配置:
module.exports = function(api) {
api.cache(true);
return {
presets: [
"babel-preset-expo",
["@babel/preset-env", { targets: { node: "current" } }],
"@babel/preset-typescript"
],
plugins: ["@babel/plugin-proposal-class-properties"]
};
};
和我的 Jest 配置:
"jest": {
"preset": "react-native"
}
断裂试验:
import React from "react";
import App from "../App";
import { render } from "@testing-library/react-native";
describe("App", () => {
it("renders", () => {
const { container: received } = render(<App />);
expect(received).toMatchSnapshot();
});
});
请注意,我花了一些时间尝试不同的预设/插件/配置组合,因此这可能不是理想的设置。我试图了解我选择的这个特定堆栈是否存在实际限制(到目前为止,我找不到使用这个确切堆栈的精确最新示例)、错误配置或我的实际错误应该提高。我也不知道该错误(如果有的话)实际上属于哪个包,我应该将它报告给 Jest 吗?还是反应原生?还是通天塔?还是测试库?
任何帮助将不胜感激。
谢谢!