如何嘲笑玩笑和酵素中的功能

时间:2020-05-09 14:24:37

标签: reactjs jestjs enzyme

我想在我的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 
  }
)

有人可以帮我语法吗?

1 个答案:

答案 0 :(得分:0)

虽然您可以监视和模拟基于类的组件中方法属性的结果,但不能对功能组件使用相同的方法。

您应该做的是触发或模拟在功能组件中调用func方法的特定行为,然后测试预期的行为(例如,是否调用了props方法或DOM元素中的更改,等)。

如果它是由useEffect()钩子触发的,则必须通过更新依赖项数组中使用的props(使用setProps)来触发该钩子。