jest
とenzyme
を使用して私のReactアプリケーションをテストし、接続されたコンポーネントのテストに苦労しています。接続されたReduxコンポーネント内のコンポーネントでReduxアクションをユニットテストする方法
は、私は、次のロジックが単純なコンポーネント持っています:
class LoginPage extends React.Component {
componentDidMount() {
if (!this.props.reduxReducer.appBootstrapped) {
this.props.dispatch(ReduxActions.fadeOutAndRemoveSplashScreen(500));
}
}
render() {
return (
<div data-page="login-page" >
<div>This is the login page.</div>
</div>
);
}
}
const mapStateToProps = (state) => {
return {
reduxReducer: state.reduxReducer
}
};
export default connect(mapStateToProps, null)(LoginPage);
だから、これはいくつかのテキストを含む<div />
要素を表示するコンポーネントですが、私はテストしたい重要な部分はそのときですコンポーネントがマウントされると、アクションがディスパッチされてスプラッシュ画面が非表示になります。 これは、アプリケーションがブートストラップされていない場合にのみ発生します。
私は、コンポーネントが描画されることをテストするための簡単なユニットテストを持っている:
describe("[LoginPage Component]",() => {
it("Renders without a problem.",() => {
// Act.
const wrapper = mount(
<LoginPage store={ reduxStore } />
);
// Assert.
expect(wrapper.find("div[data-page=\"login-page\"]").length).toBe(1);
});
});
reduxStore
プロパティは、次のコードで作成された私の実際のReduxの店、次のとおりです。今
const reduxStore = createStore(
combineReducers(
{
reduxReducer
}
)
);
、 componentDidMount()
メソッドをテストするにはどうすればよいですか?さらに特別な場合は、アプリケーションがまだブートストラップされていないときにreduxアクションfadeOutAndRemoveSplashScreen()
が呼び出されることをテストします。
私は私のレビュックスストアを模倣する必要があると思うが、私はこれについて初心者であり、今始める方法はないので、その例が高く評価される。
私の実装に関する他の考えがある場合は、お気軽にご相談ください。
種類は、私がアクションをオフに送信するために、生dispatch
メソッドを使用していないだろう
ありがとう、正確に私が探していた答え。 – Complexity