Вот проблема: всякий раз, когда вы набираете <div>Foo</div>
, <Component />
или другой синтаксис JSX, который не является стандартным JavaScript.Если вы откроете консоль браузера и наберете <div />
, вы получите Uncaught SyntaxError: Unexpected token <
.
Так как браузеру удается прочитать ваш XML-код?В зависимости от вашей конфигурации у вас есть что-то, что преобразует JSX в обычный старый JavaScript - обычно это babel .
Всякий раз, когда вы набираете <div className="foo">Hello</div>
, этот код транслируется в React.createElement('div', {className: 'foo'}, 'Hello')
.На самом деле вы можете написать код, используя createElement
и пропустить весь JSX, если хотите.
Это верно и для ваших тестов.
В вашем примере render(<Report report={reportData} />)
будетпереведите в render(React.createElement(Report, {report: reportData}, null))
перед выполнением теста.
И вот почему у вас есть ошибка;вы пытаетесь получить доступ к методу createElement
из React
, но не импортировали его.
Импортирование React исправит ваш тест.