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

В моем проекте Rails я использую гем react-rails, который делает следующее:

window.React = React;

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

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

import React from 'react';

Затем это вызывает ошибки из-за двойной загрузки React.

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


person Matt Gibson    schedule 11.01.2016    source источник
comment
может это полезно? stackoverflow.com/questions/30233357/   -  person jnes    schedule 11.01.2016
comment
Спасибо. Пытаюсь, но пока не повезло.   -  person Matt Gibson    schedule 11.01.2016
comment
вы используете webpack или babel? Поскольку вы можете настроить ветку if/else, чтобы включить строку импорта. Посмотрите этот пример с babel   -  person enjoylife    schedule 12.01.2016


Ответы (1)


В тестовом файле выполните:

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
  })
})
person Shiva Nandan    schedule 07.03.2016