gpt4 book ai didi

javascript - ReduxForm 需要存储在测试中作为 Prop 传递

转载 作者:行者123 更新时间:2023-11-29 19:09:52 26 4
gpt4 key购买 nike

我正在尝试使用 ReduxForm 进行一些单元测试,但我显然对像这样的最简单的单元测试有问题。

实际上,我有一个搜索栏,当我修改它的输入时,我需要状态来反射(reflect)该数据。

我写了这个测试:

beforeEach(() => {
const store = configureStore()({
searchBar:{
inputField:''
}
});
searchBar = TestUtils.renderIntoDocument(<SearchBar store={store}/>);
});

it('should have a form Field tag', () => {
const input = TestUtils.findRenderedComponentWithType(searchBar, Field);
expect(input).toBeTruthy();
});

那应该测试这个:

import React from 'react';
import { Field, reduxForm } from 'redux-form';
/**
* The seach bar component class definition
*/
class SearchBar extends React.Component {
/**
* Render the searchBar component
*/
render() {
return (
<form>
<Field name="inputField" component="input" type="text"/>
<button type="submit">Rechercher</button>
</form>
);
}
}

/**
* Decorate the form
*/
SearchBar = reduxForm({
form: 'searchBar'
})(SearchBar);

export default SearchBar;

但是我抛出了以下错误:

Invariant Violation: Could not find "store" in either the context or props of "Connect(ConnectedField)". Either wrap the root component in a <Provider>, or explicitly pass "store" as a prop to "Connect(ConnectedField)". in src/index.spec.js (line 3551)

即使我将组件中的 props 传递给它......(请参阅 beforeEach 调用)

有什么想法吗?

最佳答案

为了测试 redux-form,你需要有一个 redux store 和一个 provider。

尝试这样的事情:

searchBar = TestUtils.renderIntoDocument(<Provider store={store}><SearchBar /></Provider>);

关于javascript - ReduxForm 需要存储在测试中作为 Prop 传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39847311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com