У меня есть приложение-ответ, которое не использует инструмент browserify. Это означает, что переменная React
экспортируется скриптом реакции js lib, вызванным в <head>
.Как протестировать компонент React без Browserify
// React variable is already available
var MyComponent = React.createClass({});
После реализации этого компонента я хочу создать для него тест. Я взглянул на Jest documentation, и я создал свой компонентный тест.
/** @jsx React.DOM */
jest.dontMock('../compiled_jsx/components/my-component.js');
describe('MyComponent', function() {
it('The variables are being passed to component', function() {
var React = require('react/addons');
// In the `MyComponent` import I got the error below:
// ReferenceError: /compiled_jsx/components/my-component.js: React is not defined
var myComponent = require('../compiled_jsx/components/my-component.js');
});
В Jest documentation примере оба компонента и его испытания использует require
функцию для получения переменной React
.
Есть ли способ выставить React
переменную в компонент? Или это необходимо с помощью браузера для создания этого теста?
Я не использую модули commonjs, но я использую React, и я не нашел лучшего способа проверить мое приложение React, чем Jest. Я подумал о том, чтобы применить метод «try/catch», но для меня это кажется уродливым. Я ищу лучший способ сделать это. Какую тестовую библиотеку вы рекомендуете вместо Jest? Спасибо заранее. –
Jest - лучший вариант, но тест-утилиты mocha + react должны быть достаточно хорошими. Вам нужно будет либо использовать карму + фантомы, либо тестовый бегун на основе браузера (я думаю, что у мокки есть один). – FakeRainBrigand
Хорошо. Я думаю, что лучше адаптировать мое приложение для использования модулей commonjs . Спасибо @FakeRainBrigand –