React Native / TypeScript /测试库/ Jest的设置不起作用

时间:2020-02-27 12:26:00

标签: typescript react-native jestjs babeljs react-native-testing-library

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

任何帮助将不胜感激。

谢谢!

0 个答案:

没有答案