2016-07-10 67 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

這方面現在是文章中提到:)