Jestjs 如何使用react jest测试用例在我们的组件中进行回调

Jestjs 如何使用react jest测试用例在我们的组件中进行回调,jestjs,react-hooks,Jestjs,React Hooks,我们如何使用jest对以下代码行的成功和失败案例进行回调,以实现测试覆盖率 const handleService = () => { window.domain.service("1321",'',onSuccess, onFailure) } const onSuccess = () => { ....update state values } const onFailure = () => { ....update state values }

我们如何使用jest对以下代码行的成功和失败案例进行回调,以实现测试覆盖率

const handleService = () => { 
 window.domain.service("1321",'',onSuccess, onFailure)
}

const onSuccess = () => {
....update state values
}
const onFailure = () => {
....update state values
}
大概是这样的:

  • 监视
    window.domain.service
    以获取对其接收到的呼叫的访问权限。这将允许您访问这些调用的参数,这些参数将是
    “1321”、''、onSuccess、onFailure
  • 将要测试的函数分配给变量
  • 调用函数以执行其中的代码(这将获得覆盖率)
  • (可选)断言回调函数的行为正确
下面是一个帮助演示的片段

it('should run',()=>{
//在窗口上创建函数的一些设置,如果在其他地方执行,则可能不需要。
//最好在每次之前进行清洁,在每次之后进行清洁,以避免污染窗口对象
window.domain={
服务:()=>{},
}
//监视window.domain.service方法。
//如果不希望调用真实的实现,请提供模拟实现
const serviceSpy=jest.spyOn(window.domain,'service');
executeYourCode();
//捕获调用的参数
const[_arg1,_arg2,onSuccess,onFailure]=serviceSpy.mock.calls[0];
//执行回调
onSuccess();
onFailure();
});