swa*_*l24 2 reactjs jestjs reactjs-testutils redux react-redux
我正在尝试测试 combineReducers 但出现以下错误。
类型错误:_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,
});
Run Code Online (Sandbox Code Playgroud)
以下是测试用例
// 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);
});
});
Run Code Online (Sandbox Code Playgroud)
如果我在 reducer 中导出所有函数并在测试用例中导入个人,它会起作用,但这不是想法案例。
combineReducers返回一个函数,该函数合并了您放入其中的所有减速器的状态。它不允许您访问单个减速器并单独调用它们。
对于您的情况,您应该以这种方式使用它:
expect(
testReducer(true, {type: "temp11"}).test11
).toEqual(returnTrueValue);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2351 次 |
| 最近记录: |