React Native(0.59.10)—运行测试时如何删除“ useNativeDriver”(但不在实际应用中)

时间:2019-07-05 05:08:34

标签: react-native animation jestjs native react-native-elements

我正在使用React Native(版本0.59.10)构建一个项目。每当我运行测试(使用Jest)时,都会收到以下警告:

    console.warn node_modules/react-native/Libraries/Animated/src/NativeAnimatedHelper.js:248
      Animated: `useNativeDriver` is not supported because the native animated module is missing. Falling back to JS-based animation. To resolve this, add `RCTAnimation` module to this app, or remove `useNativeDriver`. More info: https://github.com/facebook/react-native/issues/11094#issuecomment-263240420

这似乎是由于在Animated中使用了TouchableOpacity,而Button又从'react-native-elements'中使用了。

使用Xcode查看我的项目,我可以看到RCNativeAnimation项目在那里:

screen snap from Xcode showing RCNativeAnimation exists

我检查了引用的链接:https://github.com/facebook/react-native/issues/11094#issuecomment-263240420,但这已经很老了,并且引用了React Native和Xcode的非常老的版本。

我猜测该警告与无法从测试中访问的本机RCNativeAnimation模块有关,但是我对如何在测试上下文中“删除useNativeDriver”感到困惑。显然,在真实应用中,我想确保使用的是本地动画库,但是在单元测试中,我不在乎。

消除此警告的推荐方法是什么?

2 个答案:

答案 0 :(得分:0)

jest.mock('NativeAnimatedHelper');添加到您的测试文件中

答案 1 :(得分:0)

将jest.mock更改为:

jest.mock('react-native/Libraries/Animated/src/NativeAnimatedHelper');