2017-04-04 77 views
1

“哑”React视图可以通过在呈现它之前传递道具来进行测试,其格式为enzyme/jsdom。然后可以使用快照测试来验证行为(如在jest中)。如何测试渲染智能组件的redux哑元组件?

mapStateToProps/mapDispatchToProps连接的“哑视图”构成的自动智能型组件可以通过进行测试:

  1. 单元测试mapXxxToProps检查逻辑是右
  2. 测试dumb视图

和optionnaly:

  1. 通过将智能组件包装到提供商中来渲染智能组件

但是,只要傻瓜视图开始嵌套其他智能容器,这似乎就会中断;愚蠢的视图渲染是不可能的,因为道具上的一些儿童组件可能需要商店。

有没有办法解决这个问题?

我错过了什么吗?

回答

0

使用酶,您可以使用shallow render来测试愚蠢组件正在渲染期望的智能组件,而无需实际渲染它们。

组分(Bar是智能成分):

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 
})