1
私はこのファイルと類似のコードでreduxフォーム送信をテストしようとしています。jestを使用したReduxフォームテスト
https://github.com/marmelab/admin-on-rest/blob/master/src/mui/auth/Login.js
私のコードは、私は二つの問題に直面しているこの
const middlewares = [];
const mockStore = configureMockStore(middlewares);
it("submit button",() => {
userLogin = jest.fn();
const initialState = {
admin: {
notification: {
text: "",
type: "info"
}
},
};
store = mockStore(initialState);
tn = label => label;
const props = {
submitting: false,
theme: customTheme,
translate: tn,
store,
location: {
state: {
nextPathname: "/"
}
},
userLogin: userLogin
};
container = mount(
<Provider store={store}>
<TranslationProvider locale="en">
<Login {...props} /> //Login is connected component
</TranslationProvider>
</Provider>
,
{
context: { store: mockStore(initialState) }
}
);
const username = container.find("TextField").first();
username.simulate("change", { target: { value: "admin" } });
const password = container.find("TextField").last();
password.simulate("change", { target: { value: "Superuser" } });
const form = container.find("form");
form.simulate("submit");
console.log(username.debug());
expect(userLogin).toHaveBeenCalled();
});
のようなものです。
- ユーザー名を印刷すると、シミュレーションで更新する更新値が表示されません。
第2に、expect句が失敗します。私のコード内のuserLogin関数が呼び出されたことをどうやって確認するのですか?
呼び出された疑似モック関数が必要です。
ありがとうございます。 mockStoreを使ってredux形式を模倣する方法はありますか? –
あなたは容器をテストするためにredux形式を模擬したいと思っていますか?私はそれが浅いと思うかもしれないと思う。しかし、浅い私は思うフォームの内部コンポーネントをテストしません。私はまだ試していない。あなたの旅の仲間にもっと良い方法を見つけたら教えてください! – OwlyMoly