如何在笑话和酶中模拟函数的作用

问题描述 投票:0回答:1

我想对我的react组件中的一个函数进行模拟测试,例如我有。

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 
  }
)

谁能帮我解决一下语法问题?

reactjs jestjs enzyme
1个回答
0
投票

虽然你可以在基于类的组件中窥探和模拟方法属性的结果,但你不能对功能组件使用同样的方法。

你应该做的是触发或模拟特定的行为来调用 func 方法,然后测试预期的行为(即是否调用了props方法,或DOM元素的变化等)。

如果它是由 useEffect() 钩子,你必须通过更新道具来触发该钩子(使用 设置道具),在依赖关系数组中使用。

© www.soinside.com 2019 - 2024. All rights reserved.