【发布时间】:2021-02-04 08:18:17
【问题描述】:
我想做的事
我想在某些测试期间将一些自定义属性传递给事件(使用react-testing-library 和jest)。我正在使用fireEvent 函数。我从docs 了解到,第二个参数中的属性已添加到事件中。这是我目前做不到的。
最小的可重现示例
import React from 'react'
import { render, fireEvent } from '@testing-library/react'
test('check event', () => {
const DOM = render(
<div
onClick={event => {
console.log(event.foo)
}}
>
Click Me
</div>
)
// here I am expecting foo to be a property on the event passed
// to the event handler. But that doesn't happen.
fireEvent.click(DOM.getByText('Click Me'), { foo: 'bar' })
})
结果是记录了undefined。
我尝试过的方法/想法
我已经尝试过使用不同事件类型、使用createEvent、使用自定义事件、手动添加事件侦听器等的各种变体,但我似乎无法访问我传入的任何事件属性这些变化。
我已经深入了解了fireEventhere 中发生的事情。看起来确实应该添加这些额外的属性。
【问题讨论】:
标签: javascript events jestjs react-testing-library jsdom