如何为 React 测试库中的 Select Box onChange 方法编写测试用例?

Posted

技术标签:

【中文标题】如何为 React 测试库中的 Select Box onChange 方法编写测试用例?【英文标题】:How to write test cases for Select Box onChange Method in React Testing Library? 【发布时间】:2021-12-30 05:19:42 【问题描述】:

我有一个选择框并将数据设置为onChange 事件的状态。请看下面的代码。任何人都可以帮助我在 React 测试库中为 onChange 事件编写案例。

const [optionValue, setOptionValue] = useState( value: '', label: '' )

const handleOnChange = (option: OptionType): void => setOptionValue(option)

<Select name=title id=title placeholder="Choose an Option" options=setOptionsData defaultOption=optionValue onChange=e =>  handleOnChange(e)  data-test="options" />

【问题讨论】:

【参考方案1】:

我建议使用 userEvent,它是 React 测试库生态系统的一部分。它允许您编写更接近真实用户行为的测试。示例:**

it('should correctly set default option', () => 
  render(<App />)
  expect(screen.getByRole('option', name: 'Make a choice').selected).toBe(true)
)


it('should allow user to change country', () => 
  render(<App />)
  userEvent.selectOptions(
    // Find the select element
    screen.getByRole('combobox'),
    // Find and select the Ireland option
    screen.getByRole('option', name: 'Ireland'),
  )
  expect(screen.getByRole('option', name: 'Ireland').selected).toBe(true)
)

查看this article(我自己写的)以获取有关如何使用 React 测试库测试选择元素的更多信息。

【讨论】:

以上是关于如何为 React 测试库中的 Select Box onChange 方法编写测试用例?的主要内容,如果未能解决你的问题,请参考以下文章

如何为将来的私人项目保留作曲家库中的修改?

如何为DefiniteTyped 编写React Native 库的测试?

如何为 Spring Boot 启动器拆分库中的代码

如何为具有属性依赖项的 Spring Boot Application 类编写测试用例 - 无法解析占位符

如何为我的 React 表单组件中的选择菜单设置默认值?

如何为 Google Cardboard 配置 React 360