创建测试对我来说是新的。我正在尝试为接收事件的函数创建测试。如果重要的话,这是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});
}
答案 0 :(得分:0)
首先,您将event.preventDefault()
应用于输入。在这种情况下,没有“事件”可以阻止,因此代码基本上没用。
其次,当只有event.target.value
传递给您的函数时,您正在使用event
。在这种情况下,您只是在寻找event.value
。
要传递当前输入,只需将 this
作为参数传递到JavaScript函数中。 this
始终引用当前元素。
这是一个有效的例子:
function handleChange(event) {
if (isNaN(event.value)) {
alert('The input can only be a number.');
} else if (event.value > 5) {
alert('Rating can not be over 5 stars, please try again.');
} else {
alert('The input was OK.');
}
}
<input onchange="handleChange(this)">
当您输入输入(然后尝试单击输入)时,将抛出alert()
。
希望这有帮助! :)