[英]simulating an onClick method with a parameter using Enzyme in React
我正在嘗試使用Enzyme for React在我的單元測試中模擬onClick方法。 我發現了許多模擬onClick的指南,它們需要一些事件e,例如:
handleClick(e) {
// Does something
}
....
<MyComponent
onClick = {handleClick}
></MyComponent>
但是我希望能夠模擬我的onClick,它不會將事件作為參數,而是采用其他方式,即:
onClick = {() => handleClick(myParam)}
我嘗試過使用.simulate('click', [myParam]);
但它沒有像我預期的那樣傳遞參數。
我將如何模擬將特定參數發送到處理程序的單擊?
根據該文件,它聲明:
.simulate(event [,mock])=>自模擬事件
參數
event(String):要模擬的事件名稱mock(Object [optional]):一個模擬事件對象 ,它將與傳遞給處理程序的事件對象合並。
所以你需要修復你的代碼並傳遞一個對象:
.simulate('click', {myParam});
您還可以查看實現,並在此處查看如何將其傳遞給事件處理程序:
simulate(event, ...args) {
const handler = this.prop(propFromEvent(event));
if (handler) {
withSetStateAllowed(() => {
// TODO(lmr): create/use synthetic events
// TODO(lmr): emulate React's event propagation
performBatchedUpdates(this, () => {
handler(...args);
});
this.root.update();
});
}
return this;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.