Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何测试呈现智能组件的redux哑组件?_Reactjs_Redux - Fatal编程技术网

Reactjs 如何测试呈现智能组件的redux哑组件?

Reactjs 如何测试呈现智能组件的redux哑组件?,reactjs,redux,Reactjs,Redux,在使用enzyme/jsdom呈现之前,可以通过传递道具来测试“dumb”React视图。然后可以使用快照测试来验证行为(如jest) 由与MapStateTrops/mapDispatchToProps连接的“哑视图”组成的智能组件可以通过以下方式进行测试: 单元测试mapXxxToProps检查逻辑是否正确 测试dumb视图 和选项分析: 通过将智能组件包装到提供程序中来呈现智能组件 然而,每当一个愚蠢的视图开始嵌套其他智能容器时,这似乎就会中断;仅使用道具无法呈现哑视图,因为链中的某些子组

在使用
enzyme
/
jsdom
呈现之前,可以通过传递道具来测试“dumb”React视图。然后可以使用快照测试来验证行为(如
jest

由与
MapStateTrops
/
mapDispatchToProps
连接的“哑视图”组成的智能组件可以通过以下方式进行测试:

  • 单元测试
    mapXxxToProps
    检查逻辑是否正确
  • 测试
    dumb
    视图
  • 和选项分析:

  • 通过将智能组件包装到提供程序中来呈现智能组件
  • 然而,每当一个愚蠢的视图开始嵌套其他智能容器时,这似乎就会中断;仅使用道具无法呈现哑视图,因为链中的某些子组件可能需要存储

    有办法吗


    我遗漏了什么吗?

    使用Ezyme,您可以使用测试来测试哑组件是否正在呈现预期的智能组件,而不是实际完全呈现它们

    组件(
    Bar
    是智能组件):

    constfoo=()=>{
    返回(
    )
    }
    
    测试:

    import{shall}来自“酶”;
    ...
    它('应该呈现组件',()=>{
    常量包装器=浅()
    expect(wrapper.contains()).to.be.true
    })
    
    使用Ezyme,您可以使用测试来测试哑组件是否正在呈现预期的智能组件,而不需要实际完全呈现它们

    组件(
    Bar
    是智能组件):

    constfoo=()=>{
    返回(
    )
    }
    
    测试:

    import{shall}来自“酶”;
    ...
    它('应该呈现组件',()=>{
    常量包装器=浅()
    expect(wrapper.contains()).to.be.true
    })
    
    const Foo = () => {
        return (
            <div>
                <Bar />
            </div>
        )
    }
    
    import { shallow } from 'enzyme';
    
    ...
    
    it('should render <Foo /> component', () => {
        const wrapper = shallow(<Foo />)
        expect(wrapper.contains(<Bar />)).to.be.true
    })