【问题标题】:How to do an integration test for a material UI <Slider /> component with userEvent or fireEvent?如何使用 userEvent 或 fireEvent 对 Material UI <Slider /> 组件进行集成测试?
【发布时间】:2021-01-08 17:07:44
【问题描述】:

我一直在努力尝试对材质 UI 组件进行集成测试。我可以定位滑块,但未能成功移动滑块并找到新值。您对如何与该组件进行交互并测试该交互有任何指导吗?

import React from "react";
import { fireEvent, render, screen } from "@testing-library/react";
import userEvent from "@testing-library/user-event";
import "@testing-library/jest-dom";
import { MemoryRouter } from "react-router-dom";
import { Slider } from "@material-ui/core";

import SearchForm from "./SearchForm";

describe("SearchForm interaction", () => {
  it("should change value if slider is moved", () => {
    const minValue = 1;
    const maxValue = 8;
    const currentValue = 4;
    render(
      <Slider
        className="slider"
        min={minValue}
        max={maxValue}
        value={currentValue}
        onChange={jest.fn()}
        valueLabelDisplay="auto"
        aria-labelledby="range-slider"
        data-testid="numPlayer-slider"
      />
    );
    const slider = screen.getByTestId("numPlayer-slider");
    //userEvent.click(slider, )
  });
});

【问题讨论】:

  • 我也一直在尝试解决这个问题。我想现在,我会坚持使用 fireEvent.change(slider, { target: { value: '2' } })

标签: javascript reactjs unit-testing jestjs material-ui


【解决方案1】:

我没有这方面的经验,但你可以尝试一下:

  • 检查滑块上的元素并检查值是如何存储在 html 标记中的。

  • 如果正在使用属性值,也许您可​​以尝试:

    slider.value = INSERT VALUE;

【讨论】:

  • 欢迎来到 StackOverflow!感谢您尝试帮助其他用户。然而,这个答案似乎并没有真正解决这个问题。您可以查看问题的标签以获取一些额外的上下文,并帮助确定您是否可以提供一个好的、高质量的答案。例如,这个问题询问“reactjs”和“testjs”。您还可以使用标签来帮助查找有关您熟悉的主题和技术的问题,并可以提供有用的高质量答案。
猜你喜欢
  • 2016-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-26
  • 2022-11-24
  • 2020-06-09
  • 2023-01-12
  • 2018-11-27
相关资源
最近更新 更多