Я обновляю свой код из устаревшего пакета react/addons в пакет react-addon-test-utils. Я использую jsdom и вставляю элемент документа и окна, как показано ниже.
import jsdom from 'jsdom';
import chai from 'chai';
import chaiImmutable from 'chai-immutable';
const doc = jsdom.jsdom('<!doctype html><html><body></body></html>');
const win = doc.defaultView;
global.document = doc;
global.window = win;
Object.keys(window).forEach((key) => {
if (!(key in global)) {
global[key] = window[key];
}
});
chai.use(chaiImmutable);
И вот мой модульный тест.
import {expect} from 'chai';
import ErrorBlock from '../src/Controls/ErrorBlock';
import React from 'react-addons-test-utils';
const {renderIntoDocument, scryRenderedDOMComponentsWithClass, Simulate}
= React;
describe('ErrorBlock', () => {
it('renders properly', () => {
const id = 'test';
const message = 'my message';
const alertStyle = "alert-danger";
const component = renderIntoDocument(
<ErrorBlock id={id} message={message} alertStyle={alertStyle} />
);
const spanEntry = scryRenderedDOMComponentsWithClass(component, id + 'AlertMessage');
expect (spanEntry.length).to.equal(1);
});
});
Я нахожусь в процессе настройки модульного тестирования для модуля пользовательского интерфейса React для использования в некоторых проектах. Однако, когда я переключаюсь на новый пакет react-addons-test-utils, я получаю следующую ошибку:
TypeError: _reactAddonsTestUtils2.default.createElement is not a function
Эта ошибка возникает в строке, где я определяю свой компонент.
Почему я получаю эту ошибку ТОЛЬКО при использовании нового пакета?
window.document.createElement
глобально доступным и вижу только этиglobal.document = doc; global.window = win;
. - person oobgam   schedule 28.12.2015