首页 > 解决方案 > 在 React with Enzyme 中测试异步函数

问题描述

我有组件,我将样式应用于具有异步功能的组件,并且我需要使用酶测试来覆盖此功能。


const SpinnerKf = new Keyframes.Spring({
  loading: async (next: Object) => {
    await next(getCircleStyles(0.5, '#fff'))
    await next(getCircleStyles(34, styles.colorSuccess))
  }
})

export class Spinner {
   ...

   render () {
     <SpinnerKf>...</SpinnerKf>   
   }
}

如何检查 Enzyme,第二个函数await返回正确的颜色(第二个参数getCircleStyles)?当我检查颜色时SpinnerKf,它只返回#fff(第一次等待的颜色),但我也需要检查第二次等待。

谢谢你的帮助。

标签: reactjsunit-testingjestjsenzyme

解决方案


你可以jest.mockKeyframes. 我不确定你从哪里导入它,但是如果你将所有东西都模拟到加载函数并传入一个间谍next函数,你可以断言颜色传递到next.

动画很难测试,彻底的测试会涉及很多模拟。这不可能。


推荐阅读