reactjs - 如何在笑话和酶中模拟一个函数
问题描述
我想在我的反应组件中进行一个模拟函数的测试,例如我有:
const app=()=>{
const [state,setState]=useState("");
const func=(item)=>{
setState(item)
}
return(
<div>{state}<div/>
)
}
对于这个例子,我想用 jest 和酵素测试名为“func”的函数:
let wrapper=mount(<App/>)
test("testing",()=>{
let item="test"
//mock function -> func(item)
// how to mock that function
}
)
有人可以帮我语法吗?
解决方案
虽然您可以监视和模拟基于类的组件中方法属性的结果,但您不能对功能组件使用相同的方法。
您应该做的是触发或模拟调用func
功能组件中的方法的特定行为,然后测试预期的行为(即是否调用了 props 方法,或 DOM 元素的变化等)。
如果它是由useEffect()
钩子触发的,则必须通过更新依赖数组中使用的道具(使用setProps )来触发该钩子。