Material-UI 자동 완성을 얇게 감싸는 구성 요소를 테스트하는 데 문제가 있습니다. 내 테스트에서, 나는 전달되는 소품을보고 싶지만 내 콘솔 진술은 빈 개체입니다. 나는 이것을 렌더링하기 위해 효소의 얕은 방법을 사용하고 있습니다.Enzyme Shallow를 사용하여 하위 구성 요소로 전달 된 소품을 테스트하려면 어떻게해야합니까?
const underlineFocusStyle = {
display: 'block',
height: '100%',
outline: 'none',
position: 'relative',
padding: '0px',
width: '100%',
border: 'none',
backgroundColor: 'rgba(0, 0, 0, 0)',
cursor: 'inherit',
opacity: '1'
};
export class MyAutoComplete extends React.Component {
render() {
let { muiTheme, forceOpenOnFocus, ...propsToApply } = this.props;
propsToApply.underlineFocusStyle = underlineFocusStyle;
if (forceOpenOnFocus) {
if (!propsToApply.filter) {
propsToApply.filter = ((searchText, key) => {
return searchText === '' || AutoComplete.defaultProps.filter(searchText, key);
});
}
}
return <AutoComplete name={'autocomplete'} {...propsToApply} />;
}
}
MyAutoComplete .propTypes = {
muiTheme: PropTypes.object,
forceOpenOnFocus: PropTypes.bool
}
export default muiThemeable()(MyAutoComplete);
그리고 내 테스트 : 여기 내 코드의 당신은 이미 아시다시피
describe('LLamasoftAutoComplete',() => {
const muiTheme = getMuiTheme();
const shallowWithContext = (node) => shallow(node, {context: {muiTheme}});
it('should pass in ',() => {
const wrapper = shallowWithContext(
<LLamasoftAutoComplete
muiTheme={muiTheme}
forceOpenOnFocus={true}
dataSource={['One', 'Two', 'Three']} />
);
console.log(wrapper.find('AutoComplete').props()); // is {}
expect(true).toBe(false);
});
});
는 Ahhhhhhh, 내가 적용했던 HOC 잊었다. 오늘이 기회를주지. – TheTFo