4

我正在尝试设置一个 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 吗?还是反应原生?还是通天塔?还是测试库?

任何帮助将不胜感激。

谢谢!

4

0 回答 0