【发布时间】:2017-09-26 18:21:21
【问题描述】:
我有一个组件 Demo,它的 Label 依赖于 redux-form 状态下某个字段的当前值。我正在使用 formValueSelector 从表单状态中获取“param”字段的当前值。它工作正常。但是,在运行 npm test 时,选择器函数总是返回 undefined。如何模拟它?
如果我做错了,请告诉我。
我有一个类似的组件
class Sample extends React.Component {
render() {
const {param, state} = this.props;
const selector = formValueSelector('sampleform');
return (
<div>
<Demo
name="name"
label={selector(state, `${param}`)}
/>
</div>
);
}
} 导出默认样本;
而且,测试代码就像
function setup() {
const spy = jest.fn();
const store = createStore(() => ({}));
const Decorated = reduxForm({ form: 'sampleform' })(Sample);
const props = {
"param":"keyOfState",
"state":{"keyOfState":"Label"}
}
const mockedComponent = <Provider store={store}>
<MuiThemeProvider muiTheme={MuiStyles()}>
<Decorated {...props}>
<span></span>
</Decorated>
</MuiThemeProvider>
</Provider>;
return {
props,
mockedComponent}
}
describe('Sample Component', () => {
it('should render the snapshot', () => {
const { mockedComponent } = setup()
const tree = renderer.create(
mockedComponent
).toJSON();
expect(tree).toMatchSnapshot();
});
});
【问题讨论】:
标签: reactjs jestjs redux-form spy react-redux-form