编译React本地源代码以用于Mochatesting

随着React Native v0.25.0和0.26.0的最新变化将React和React Native分离出来,我开始遇到一个问题,我的unit testing使用Mocha将不再运行,因为我的testinginit脚本试图编译从ES6反应本机源代码。 我的unit testing以前一直使用babel-register组合,并且忽略/包括node_modules/某些部分(请参阅我的基本testinginit脚本设置 )。

具体而言,init脚本失败, Error: Cannot find module 'ReactNative'parsingnode_modules/react-native/Libraries/react-native/react-native.jsError: Cannot find module 'ReactNative' 。 在检查这个文件时,确定你在那里find一个require('ReactNative')行; 承诺完全分离出React / RN的结果 。 我可以理解为什么Node和babel-register在这里死去 – 这require不遵循正常的约定,但似乎是节点加速系统FB已经为RN项目的一部分。 这个问答有助于我们进一步了解这个问题,但是看起来我并没有任何办法可以让我的摩卡testing运行,因为我不能在巴贝尔传译中join节点匆忙,运行testing。

当它与RN v0.26.0兼容的时候,我会尝试一下react-native-mock ,但是如果没有它,我们就可以重新运行我的unit testing了,因为以前我不需要它。 我在我的摩卡堆中错过了什么,这将使这个神奇的工作? 我不理解React Native堆栈会帮助我解决这个问题,而且还会testing我的各个部分?

(注意:我主要testingAPI元素,动作创build者/缩减器和各种实用程序方法, 而不检查React组件的渲染输出。)