在React with Enzyme中测试异步功能

时间:2019-01-16 13:10:07

标签: reactjs unit-testing jestjs 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>   
   }
}

如何使用酶检查第二个await中的函数返回正确的颜色(getCircleStyles中的第二个参数)?当我在SpinnerKf上检查颜色时,它仅返回#fff(第一次等待时的颜色),但是我也需要检查第二次等待时的颜色。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以jest.mock Keyframes。我不确定从哪里导入它,但是如果您将所有内容模拟到加载函数并传递一个间谍next函数,则可以断言将颜色传递给next

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