【发布时间】:2016-11-10 21:47:34
【问题描述】:
我正在尝试使用 Enzyme 的 mount 来测试我的组件,其中嵌套了多个 Material UI 组件。运行测试时出现此错误:
TypeError: Cannot read property 'prepareStyles' of undefined
经过一番挖掘,I did found that a theme needs to be passed down in a context。我在测试中这样做,但仍然出现此错误。
我的测试:
import expect from 'expect';
import React, {PropTypes} from 'react';
import {mount} from 'enzyme';
import SearchBar from './SearchBar';
import getMuiTheme from 'material-ui/styles/getMuiTheme';
function setup() {
const muiTheme = getMuiTheme();
const props = {
closeSearchBar: () => {},
fetchSearchData: () => {},
data: [],
searching: false
};
return mount(<SearchBar {...props} />, {context: {muiTheme}});
}
describe('SearchBar Component', ()=> {
it('Renders search toolbar properly', () => {
const wrapper = setup();
expect(wrapper.find('.toolbar').length).toBe(1);
expect(wrapper.find('button').length).toBe(1);
});
});
我的搜索栏组件是一个无状态的组件,所以我没有在任何上下文中拉扯。但即使我在,我仍然会遇到同样的错误。
我做错了什么?
【问题讨论】:
标签: material-ui enzyme