我正在尝试使用 EnzymedescribeWithDOM()
和mount()
. 但是当组件导入 jQuery 我得到这个错误:
错误:jQuery 需要一个带有文档的窗口
我知道 Enzyme 在后台使用 jsdom,我一直认为 jsdom 负责处理窗口和文档。但我似乎无法找到如何让这些一起工作。
测试代码如下所示:
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;
});
});
}
在按钮 onClick 方法中调用了一个 jquery 函数:$('#inputSelector').focus()
如何让 Enzyme 和 jsdom 在测试中使用 jquery?