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