首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react-testing-library未呈现正确的快照

react-testing-library未呈现正确的快照
EN

Stack Overflow用户
提问于 2019-06-18 02:18:23
回答 1查看 1.4K关注 0票数 2

我正在尝试针对快照测试组件。该组件呈现一个带有onChange事件的复选框,并且其选中状态被链接到设置为true的组件状态。

渲染快照时,它根本不会显示onChange,而选中的将显示为空字符串。

我想要的结果是函数{onChange=}真{checked=}。

我已经使用react-test-renderer和Enzyme进行了测试,两者都正确地输出了快照。

组件文件

代码语言:javascript
复制
import React, { useState } from "react";
import "./App.css";

function App() {
    const [count, setCount] = useState(true);

    return (
        <div className="App">
            <input type="checkbox" checked={count} onChange={() => {}} />
        </div>
    );
}

export default App;

测试文件

代码语言:javascript
复制
import React from "react";
import App from "./App";
import { render } from "@testing-library/react";

it("renders", () => {
    const { asFragment } = render(<App />);

    expect(asFragment()).toMatchSnapshot();
});

快照文件

代码语言:javascript
复制
exports[renders 1] =
<DocumentFragment>
  <div
    class="App"
  >
    <input
      checked=""
      type="checkbox"
    />
  </div>
</DocumentFragment>;

预期快照:

代码语言:javascript
复制
exports[renders 1] = 
<DocumentFragment>
  <div
    class="App"
  >
    <input
      checked={true}
      type="checkbox"
      onChange={[Function]}
    />
  </div>
</DocumentFragment>;
EN

回答 1

Stack Overflow用户

发布于 2019-06-18 02:38:50

RTL工作正常。render方法只返回正在呈现的组件的DOM。在DOM中,不存在操作处理程序和快照状态。

测试组件的一种更好的方法是直接检查这些值,而不是拍摄快照。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56636819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档