Enzymeユニットテストでコンポーネントのデフォルト状態を確認しようとしています。このために、私は次のコンポーネントを持っています:
import React, { Component } from 'react';
class Picker extends Component {
constructor(props) {
super(props);
this.state = {
sources: true
};
}
}
...
export default Picker;
最後に、私のユニットテストは次のようになります。
it('should contain `everything` as a default value', () => {
const wrapper = mount(<Picker name='cnn' />);
expect(wrapper.state('sources')).to.exist()
});
ここで直面している問題は、コンポーネントのデフォルト状態を取得できないことです。私が間違っていなければ、関数wrapper.state( 'sources')は 'true'を返すはずです。
私が見逃している他のステップはありますか?私が使用しているもの:
私はこれとたくさん取り組んできました! Picker
はComponent
のサブクラスであるため、探している状態は実際にはwrapper
ではなくwrapper.instance()
に存在します。
shallow
とmount
の「ラッパー」の戻り値はまさにそれです:ラッパー。これは、テストしようとしている実際のコンポーネントではありません。コンポーネントが囲まれている小さな環境だと思います。
コンポーネントの状態、小道具、および関数についてアサーションを作成するために、次のことに到達することに成功しました。
const component = wrapper.instance()
次に、component
で、.state
、.props
、&cを呼び出すことができます。
ご不明な点がございましたらお知らせください。