2016-07-10 38 views
2

我试过从here简单的设置关于单元测试与AVA的JS代码,但我做错了,因为该设置似乎没有考虑到。 例外:React原生单元测试与AVA

ReferenceError: __DEV__ is not defined 
at Object.<anonymous> (D:\Vs\app\node_modules\react-native\Libraries\react-native\react-native.js:15:5) 
at Module._compile (module.js:409:26) 
at Object.Module._extensions..js (module.js:416:10) 
at Module.load (module.js:343:32) 
at Function.Module._load (module.js:300:12) 
at Module.require (module.js:353:17) 
at require (internal/module.js:12:17) 

我在RN项目的根文件夹的测试。

我_Setup.js文件看起来像这样:

import mockery from 'mockery' 

// inject __DEV__ 
global.__DEV__ = true 
__DEV__ = true 
// We enable mockery and leave it on. 
mockery.enable() 

// Silence mockery's warnings as we'll opt-in to mocks instead 
mockery.warnOnUnregistered(false) 

我的package.json的相关部分看起来像

"ava": { 
    "babel": "inherit", 
    "files": [ 
     "tests/**/*.js" 
    ], 
    "require": [ 
    "babel-register", 
    "babel-polyfill", 
    "react-native-mock/mock" 
    ] 
}, 
"devDependencies": { 
    "ava": "^0.15.2", 
    "babel-polyfill": "^6.9.1", 
    "babel-register": "^6.9.0", 
    "enzyme": "^2.4.1", 
    "mockery": "^1.7.0", 
    "nyc": "^7.0.0", 
    "react-addons-test-utils": "^15.2.1", 
    "react-dom": "^15.2.1", 
    "react-native-mock": "^0.2.4" 
} 

测试文件:

import test from 'ava' 
import smth from '../app/components/LoadingSpinner' 

test('returns 1', t => { 
    t.is(1, smth()) 
}) 

.babelrc只有

{ 
    "presets" : ["react-native"] 
} 

任何提示表示赞赏!感谢:D!

回答

1

整个问题解决了,一旦我更新了我的节点6.x.x

这方面现在是文章中提到:)