发送" oninput"具有自定义{target:{value}}数据的事件

时间:2017-02-12 08:32:58

标签: javascript unit-testing dom-events

我尝试在单元测试中的<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"}的活动?

1 个答案:

答案 0 :(得分:1)

当您在实际的input元素input上发送e.target事件时始终设置为元素,您无法覆盖它 - 您只能传递带有其他数据的对象。要解决您的问题,您只需在调度事件之前设置输入值,或者您可以测试事件处理程序本身