ReactNative 0.42から0.48に更新したアプリがあります。このアップデートでは、テストのためにJestに移行しました(mocha/chai/enzymeから)。現在Jest v21.1.0を使用しています。手動で各テストを実行すると、エラーなしですべてのテストが実行されます。私はちょうどyarn jest
を実行すると、私はこのエラーを取得:Jest Error "ReactNative 0.48でプロパティ 'validAttributes'が未定義です"を読み取ることができません。
/scratch/react_native_app/client/node_modules/react-native/Libraries/Renderer/ReactNativeStack-dev.js:2582
warnForStyleProps$1(nativeProps,viewConfig.validAttributes);
^
TypeError: Cannot read property 'validAttributes' of undefined
at setNativePropsStack$1 (/scratch/react_native_app/client/node_modules/react-native/Libraries/Renderer/ReactNativeStack-dev.js:2582:43)
at Component.setNativeProps (/scratch/react_native_app/client/node_modules/react-native/Libraries/Renderer/ReactNativeStack-dev.js:2550:1)
at AnimatedProps.callback [as _callback] (/scratch/react_native_app/client/node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:1819:20)
at AnimatedProps.update (/scratch/react_native_app/client/node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:1698:6)
at /scratch/react_native_app/client/node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:230:69
at Set.forEach (native)
at _flush (/scratch/react_native_app/client/node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:230:16)
at AnimatedValue._updateValue (/scratch/react_native_app/client/node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:939:1)
at TimingAnimation.animation.start._this9._animation [as _onUpdate] (/scratch/react_native_app/client/node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:906:8)
at TimingAnimation.onUpdate (/scratch/react_native_app/client/node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:345:6)
私は確認することはできませんが、我々は唯一のアニメーションとタイミングを扱う二つの成分を持っています。我々はjest.useFakeTimers();
を使用していますjest.runAllTimers();
を追加すると、個々のコンポーネントでエラーが発生することがあります。コンポーネントのタイミングの部分は次のようになります。
componentDidMount() {
Animated.timing(
this.state.fadeAnim, {
toValue: 1,
delay: 2000
}
).start();
}
そして
<Animated.View style={{ opacity: this.state.fadeAnim }}>
...
</Animated.View>
私は同じ問題を抱えていて、さらに困惑しています。個々に(各ファイルごとに)実行すると、テストは成功します。 'npm run jest'を実行すると、このエラーが出ます。 – pietro909
@ pietro909私は実際にちょうどこれを先週末に考え出しました。以下の私の答えを参照してください – DaKaZ