Javascript 在React JS中,如何对容器中的函数进行单元测试?
我试图模拟一个按钮的点击,并根据点击测试发生了什么。我试着模仿这个函数。但是没有起作用。我们如何测试函数内部的语句 我试着模拟一个函数,看看它是否被调用过。但我总是不调用mock函数Javascript 在React JS中,如何对容器中的函数进行单元测试?,javascript,reactjs,unit-testing,jestjs,enzyme,Javascript,Reactjs,Unit Testing,Jestjs,Enzyme,我试图模拟一个按钮的点击,并根据点击测试发生了什么。我试着模仿这个函数。但是没有起作用。我们如何测试函数内部的语句 我试着模拟一个函数,看看它是否被调用过。但我总是不调用mock函数 updateSelect =(e, model) => { window.alert('test'); const value = e.type === "keyup" ? e.target.parentNode.childNodes[2].innerText : e.target.
updateSelect =(e, model) => {
window.alert('test');
const value = e.type === "keyup" ?
e.target.parentNode.childNodes[2].innerText : e.target.innerText;
if(!isEmpty(value)){
this.setState({text: value});
this.props.returnedValue({name : model, value});
}
}
<button className="test" onClick={(e)=>this.updateSelect(e, model)}>Click</button>
updateSelect=(e,model)=>{
窗口警报(“测试”);
常量值=e.type==“keyup”?
e、 target.parentNode.childNodes[2]。innerText:e.target.innerText;
如果(!isEmpty(值)){
this.setState({text:value});
this.props.returnedValue({name:model,value});
}
}
this.updateSelect(e,model)}>单击
我希望要么调用函数,要么至少执行函数中的几个语句您不能模拟组件内部的函数。您必须按类名或元素获取元素并模拟单击事件。在模拟click事件时,确保您正在传递这2个参数(模拟2个参数并传递它)。希望您使用的是酶和Jest/Mocha。供你参考
此外,在断言中,检查函数的预期输出(状态中的值等),不检查函数是否被调用。如果要进行单元测试,应该使用一些单元测试库,您可以查看Ezyme或react测试库。看起来您正在尝试测试实现细节。也许你应该考虑改变方法,而不是解决这个特殊的问题。这里有一篇文章开始