我尝试在单元测试中的<input>
元素上使用dispatchEvent
来触发其输入&#34; oninput&#34;具有自定义{target: {value: "data"}}
This guide仅告诉您如何触发CustomEvent。但是我不认为它会起作用,因为它只能让你指定一个&#34;详细信息&#34;属性。我实际上试图用{target: {value: "data"}}
还有InputEvent但它似乎也采用相同的&#34;详细信息&#34;仅限物业。
这是我的<input>
:
<input
oninput={handleOnInput} // jsx
>
...
function handleOnInput(e){
const data = e.target.value; // << needs to be mocked
}
这是我的测试代码:
getThatInputEl().dispatchEvent(what can trigger "input" with {target: {value: "data"}} ?)
有没有办法可以发送&#34;输入&#34;自定义{target: value: "data"}
的活动?
答案 0 :(得分:1)
当您在实际的input
元素input
上发送e.target
事件时始终设置为元素,您无法覆盖它 - 您只能传递带有其他数据的对象。要解决您的问题,您只需在调度事件之前设置输入值,或者您可以测试事件处理程序本身