我正在尝试设置一个用Jest和@testing-library/react-native
测试的React Native / TypeScript应用程序;
到目前为止,我遇到此错误:
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报告?还是React Native?还是通天塔?还是测试库?
任何帮助将不胜感激。
谢谢!