1
創建測試對我來說是新的。我正在嘗試爲接收事件的函數創建一個測試。這是一個onChange
呼叫,如果它很重要,我使用chai
。如何測試接收事件的函數?
我的功能:
export function handleChange(event) {
if (isNaN(event.target.value)) {
event.preventDefault();
alert('input can only be a number');
} else if (event.target.value > 5) {
event.preventDefault();
alert('Rating can not be over 5 stars, please try again');
} else {
this.setState({starRate: event.target.value});
}
嘿感謝您的回答:) 你是對的event.preventDefault(),不需要它。 如果我失去'event.target.value'中的'target',我根本就沒有從輸入中獲取事件值。 我正在尋找一個答案,可以幫助我測試該功能並在發生時模擬事件。 –
如果確實需要'event.target.value',那麼您必須向父級添加點擊處理程序,然後進行委派。這是一種不尋常的方法,儘管沒有理由不能用我的代碼替代上述代碼。你想爲此事模擬什麼「事件」?當輸入被點擊時,您已經觸發了邏輯。你是否想要提交表單?你可以使用'.submit()'。 –
無論您是否使用委託事件處理程序,'event'對象都具有'.target'屬性。 'event'對象沒有'.value'屬性。 – nnnnnn