如何测试函数在react-testing-library中返回jsx?

如何使用jest / react-testing-library测试组件正在返回特定的JSX?

我必须有toBeInstanceOf,等等,但是很难找到有关“反应测试库”的信息

这些是一些例子

  const classname = props.classname;

  if (!props.action) {
    return props.children;
  }

  const { id,type,target } = props.action;
  if (type === "EXTERNAL") {
    return (
      <a classname={classname} href={target}>
        {props.children}
      </a>
    );
  }

  if (["page"].includes(type.toLowerCase())) {
    return (
      <Link classname={classname} key={id} to={"/" + target}>
        {props.children}
      </Link>
    );
  }

  if (type.toLowerCase() === "play") {
    return props.children;
  } ...

如您所见,每个收益都是不同的jsx。

haha004 回答:如何测试函数在react-testing-library中返回jsx?

理想情况下,您应该寻找面向用户的DOM元素,例如文本,标签等。但是,对于此类组件,您可能需要退回到使用测试ID的方式。您可以将data-test-id="SomeComponent"添加到要返回的各种元素中,然后使用getByTestId(或queryByTestId等)查找。

本文链接:https://www.f2er.com/3163089.html

大家都在问