2017-01-20 14 views
0

接続コンポーネントをラップするコンポーネントをテストしようとしています。 だから私は(簡体字)があります。react-reduxでの接続コンポーネントの存在のテスト

const InnerComponent =() => { 
    return (
    <p>Hi!</p> 
) 
} 

const InnerComponentWrapper = connect()(InnerComponent) 

const OuterComponent =() => { 
    return (
    <div> 
     <InnerComponentWrapper> 
    </div> 
) 
} 

(明らかな状態に関連するものを含めて、これらのコンポーネントへのより多くがあります)

今、私は単にInnerComponent(またはInnerComponentWrapper)がOuterComponentであることをテストしようとしています。私はjest +酵素を使用しています。私がOuterComponent(浅いまたはマウント)をレンダリングするとき、OuterComponentで見つけることができるのは、接続のタグが付いている要素です。何も配置されていないので、どの要素が折り返しているのかわかります。

私が試したもの:

const enzymeWrapper = shallow(<OuterComponent />) 
expect(enzymeWrapper.find('Connect').length).toBe(1) // pass 
expect(enzymeWrapper.find('Connect(InnerComponentWrapper)').length).toBe(1) // fail 
expect(enzymeWrapper.find('InnerComponentWrapper').length).toBe(1) // fail 
expect(enzymeWrapper.find('InnerComponent').length).toBe(1) // fail 

感謝を!

+0

は、あなたのケースでは、 '.dive()'役立つだろうか? https://github.com/airbnb/enzyme/blob/master/docs/api/ShallowWrapper/dive.md –

答えて

0

私は解決策を見つけ、そこには間違いなくより良いかもしれないが、このハック一つは今のところ行います:

const enzymeWrapper = shallow(<OuterComponent />) 
expect(enzymeWrapper.find('Connect').node.type.WrappedComponent({})).toEqual(InnerComponent({})) 
+0

あなたは私の答えを試しましたか? – AlexB

+0

申し訳ありませんが、私はそれが該当するとは思わない。 – climbinghobo

関連する問題