2016-01-11 2 views
1

В моем проекте Rails, я использую реагирующие рельсы камень, который делает следующее:Как добавить React в качестве глобального при тестировании модулей?

window.React = React; 

Это очень удобно, но при запуске модульных тестов с использованием шутя, что глобальный не существует, и я получаю ошибка из файла, содержащего компонент, который я тестирую, говоря, что React не определен.

Если я определяю Реагировать в файле компонента с использованием

import React from 'react'; 

Затем он вызывает ошибки, связанные с погрузкой Реагировать дважды.

Как я могу определить глобальную переменную React в своих модульных тестах, чтобы они работали?

+0

может быть, это полезно? http://stackoverflow.com/questions/30233357/jest-react-how-to-use-global-object-in-unit-tests – jnes

+0

Спасибо. Попытка, но еще не удача. –

+0

Вы используете webpack или babel? Для вас можно настроить ветвь if/else для включения строки импорта. [См. Этот пример с babel] (https://babeljs.io/docs/plugins/transform-inline-environment-variables/) – enjoylife

ответ

0

В тестовом файле, сделайте следующее:

import React from 'react' 

describe('something',() => { 
    window.React = React 
    // so when you require() your component, window.React is already set 
    var MyComponent = require('MyComponent').default 

    it('does something',() => { 
    // do something 
    }) 
})