2017-10-25 10 views
0

私は、モア/チャイ/酵素/サイオンを使用して、私の反応成分を試験しています。次のコンポーネントをテストすることを検討しており、ライフサイクルメソッドをテストするためにはmountにする必要があるとします。React/Enzyme:ネッキングされた成分を模擬してスタッキングする

<Container> 
    <div /> 
    <NestedContainer /> 
    <div /> 
</Container> 

は、どのような場合にコンポーネントNestedContainerをマウントしたい私はないを行うことをさらに仮定します。代わりに、私がしたいと思っているのは、Containerをマウントする前に、モック/スタブアウトNestedContainerと平野の古いdivです。

私はこれを行うためにオンラインで解決策を探しましたが、唯一関連するリソースはhttps://medium.com/@AndreCalvo/react-component-testing-mocking-method-calls-components-and-time-d780d45e4cd5です。これらのコンポーネントを模擬するために大きなライブラリを持ち込むのはかなり重いようです。

これを行う方法は他にも分かりますか?ありがとう。

答えて

0

ライフサイクルメソッドをテストするためにマウントする必要はありません。

instance()を使用できます。

const wrapper = shallow(<MyComponent {...props} />); 

wrapper.instance().componentDidMount(); 

これにより、指定されたライフサイクルメソッドがトリガーされます。

これは(嘲笑することができます)アクションをReduxのテストのための素晴らしいですが呼び出されますなど

+0

ああ、私は知りませんでした。いずれにしても、ライフサイクルの方法を超えてテストする必要があるため、コンポーネントをマウントする必要があります。 –

+0

何が好きですか?私の経験では、マウントすることなくほとんどのものをテストすることができます。 – patrick

+0

私はax-coreを使ってレンダリングされたHTMLのアクセシビリティをテストしています。 –

関連する問題