반응형
농담을 사용한 Redex 폼 테스트
나는 이 파일과 비슷한 코드에 대해 redensx 양식 제출을 테스트하려고 한다.
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();
});
나는 두 가지 문제에 직면해 있다.
- 사용자 이름을 인쇄하면 시뮬레이션을 통해 업데이트되는 업데이트 값이 표시되지 않는다.
둘째, 기대조항이 실패한다.내 코드의 userLogin 기능이 호출되었는지 확인하는 방법
예상되는 모의 함수가 호출됨.
JEST 스냅샷 테스트를 사용하여 Redex 폼을 테스트하는 방법.
import React from 'react'
import renderer from 'react-test-renderer'
import { createStore } from 'redux'
import { Provider } from 'react-redux'
import YourReduxFormComponent from 'path where it sitting in your project'
import { reduxForm } from 'redux-form'
jest.mock('react-dom')
const spy = jest.fn()
const initialStateValues = {/* initial state values that your form component expects */}
const Decorated = reduxForm({
form: 'testForm', onSubmit: { spy }
})(YourReduxFormComponent)
const formFieldValues = {/*Form field values*/}
it('YourReduxFormComponent renders correctly', () => {
const store = createStore((state) => state, initialStateValues)
const tree = renderer.create(
<Provider store={store}>
<Decorated
{...formFieldValues}
/>
</Provider>
).toJSON()
expect(tree).toMatchSnapshot()
})
//Make your own tests like above to test the values
참조URL: https://stackoverflow.com/questions/46932791/redux-form-test-using-jest
반응형
'programing' 카테고리의 다른 글
대응 라우터 URL 매개 변수가 작동하지 않음 (0) | 2022.04.01 |
---|---|
Vuetify Data Iterator + Data 테이블의 페이지당 행 항목 이해, 기본 페이지를 설정할 수 있는가? (0) | 2022.04.01 |
react-reason 및 webpack dev 서버를 사용한 중첩된 URL 라우팅 (0) | 2022.04.01 |
Parasails.js 및 사용(Vue 라우터 또는 가상 페이지) (0) | 2022.04.01 |
Python 3에서 문자열을 바이트로 변환하는 가장 좋은 방법? (0) | 2022.04.01 |