Ich versuche, ein React Components-Verhalten unter Verwendung von describeWithDOM()
von Enzym und mount()
zu testen. Aber wenn die Komponente Importe jQuery bekomme ich diesen Fehler:Enzym löst einen Fehler aus, wenn die React Component jQuery benötigt
Fehler: jQuery erfordert ein Fenster mit einem Dokument
Ich weiß Enzym jsdom unter der Haube verwendet, und ich dachte immer, jsdom kümmerte sich um die Fenster und Dokument . Aber ich finde nicht, wie man diese zusammenbringt.
Der Test-Code sieht wie folgt aus:
import chai, {expect} from 'chai';
import Select from './Select';
import React, {createElement} from 'react';
import {describeWithDOM, mount} from 'enzyme';
describe('UI Select',() => {
//more shallow tests here
describeWithDOM('User Actions',() => {
it('Toggles the .ui-options menu on button click',() => {
const wrapper = mount(<Select {...baseProps} />);
expect(wrapper.state().open).to.not.be.ok;
wrapper.find('button').simulate('click');
expect(wrapper.state().open).to.be.ok;
});
});
}
In den Tasten onClick Methode eine Jquery-Funktion aufgerufen wird: $('#inputSelector').focus()
Wie kann ich lassen Enzyme und jsdom Verwendung jquery in den Tests?
Du hast das Problem gelöst? – pluralism
@ Pluralismus ja es tat. Akzeptierte Trevors-Antwort. – Barry127