Javascript 单元测试连接反应/酶中的高阶组分
在正常的Javascript 单元测试连接反应/酶中的高阶组分,javascript,reactjs,react-redux,mocha.js,enzyme,Javascript,Reactjs,React Redux,Mocha.js,Enzyme,在正常的connected React组件中,为了使单元测试更容易,我看到了。它适用于处理组件实际功能的简单测试,而不会被redux存储和路由器模拟弄得乱七八糟 我正在寻找一个模拟高阶组件。例如,给定一个简单的高阶组件: export default function exampleHoc(Wrapped) { const ExampleHoc = props => ( <Wrapped {...props.reduxStore} hoc={true} /> )
connect
ed React组件中,为了使单元测试更容易,我看到了。它适用于处理组件实际功能的简单测试,而不会被redux存储和路由器模拟弄得乱七八糟
我正在寻找一个模拟高阶组件。例如,给定一个简单的高阶组件:
export default function exampleHoc(Wrapped) {
const ExampleHoc = props => (
<Wrapped {...props.reduxStore} hoc={true} />
);
return connect(
state => ({
reduxStore: state.example.reduxStore,
}))(ExampleHoc);
}
这使得测试变得容易
const DummyComponent = () => <div />;
const Sut = exampleHoc(DummyComponent, true);
...
test('props value should be passed', () => {
const sut = shallow(<Sut />);
const childProps = sut.find(DummyComponent).props();
expect(sut.childProps.hoc).to.equal(true);
});
const DummyComponent=()=>;
const Sut=exampleHoc(DummyComponent,true);
...
测试('props值应通过',()=>{
const sut=浅();
const childProps=sut.find(DummyComponent.props();
expect(sut.childProps.hoc).to.equal(true);
});
同时仍然愉快地将包装好的输出传递给该方法的任何常规调用方
它能用,但我觉得它很笨重。是否有更好的/已建立的模式用于交付高阶组件的未包装内部?您需要测试exampleHoc?我相信您不需要让DummyComponents成为一种方法,它需要应用一个目标
DummyComponent
提供了这一功能,以便可以检查其给定的props
您可以在不使用Dummycamp
的情况下尝试此操作吗?让我知道您在运行测试时遇到了什么问题
const DummyComponent = () => <div />;
const Sut = exampleHoc(DummyComponent, true);
...
test('props value should be passed', () => {
const sut = shallow(<Sut />);
const childProps = sut.find(DummyComponent).props();
expect(sut.childProps.hoc).to.equal(true);
});