반응형
bombineReducers와 jest를 테스트하는 방법
combinedEmprocessors를 테스트하려고 하는데 오류가 발생했어.
TypeError: _testReducer.testReducer.test11은 함수가 아님
다음은 환원기
// testReducer.js
import { combineReducers } from "redux-immutable";
const test11 = (state, action) => {
switch (action.type) {
case "temp11":
return true;
default:
return state;
}
};
const test22 = (state, action) => {
switch (action.type) {
case "temp22":
return false;
default:
return state;
}
};
export const testReducer = combineReducers({
test11,
test22,
});
다음은 테스트 케이스
// testReducer.test.js
import { testReducer } from "./testReducer.js";
describe("test for testReducer", () => {
it("test11", () => {
const returnTrueValue = true;
expect(
testReducer.test11(
true, {
type: "temp11",
}
)
).toEqual(returnTrueValue);
});
it("test11", () => {
const returnFalseValue = false;
expect(
testReducer.test22(
true, {
type: "temp22",
}
)
).toEqual(returnFalseValue);
});
});
환원기의 모든 기능을 수출하고 테스트 케이스의 개인을 수입하면 효과가 있었지만, 아이디어 케이스는 그렇지 않다.
combineReducers
모든 환원기의 상태를 병합하는 함수를 반환하십시오.그것은 당신이 개별 환원기에 접근하고 개별적으로 전화하는 것을 허용하지 않는다.
이 방법은 다음과 같이 사용하십시오.
expect(
testReducer(true, {type: "temp11"}).test11
).toEqual(returnTrueValue);
구성품 환원기는 아래와 같을 것 같다.
export const initialState = {
totalValue: 0
};
const DashboardReducer = (state = initialState, action: any)=> {
switch(action.type) {
case 'case1':
.......
.......
.......
default:
return state;
}
뿌리 환원기는 아래와 같다고 가정한다.
export const rootReducer = combineReducers({
dashboard: DashboardReducer
});
테스트 파일은 다음과 같아야 한다:
import { rootReducer } from './root.reducer';
import { createStore } from 'redux';
import { initialState as dashboardState } from './modules/uv_dashboard/uv_dashboard.reducer';
describe('Root Reducer Suite', () => {
let store = createStore(rootReducer)
test('loaded correctly', () => {
expect(store.getState().dashboard).toEqual(dashboardState);
});
});
참조URL: https://stackoverflow.com/questions/55373079/how-to-test-combinereducers-with-jest
반응형
'Programing' 카테고리의 다른 글
vue-resulting 구성 요소를 라우터 보기 외부로 업데이트하지 않음 (0) | 2022.03.27 |
---|---|
매 플롯리브 그림: 축, 범례 및 공백 제거 (0) | 2022.03.27 |
Vue에서 구성 요소 로드를 중지하고 리디렉션하는 방법 (0) | 2022.03.27 |
Python에서 여러 인수 인쇄 (0) | 2022.03.27 |
인코딩/디코딩의 차이점은? (0) | 2022.03.27 |