我嘗試使用反應測驗庫測驗我的減速器,但我不明白為什么我得到的結果與預期不符。請你能給我解釋一下嗎?
我的減速機
export const myReducer = (state = initialState, { type, payload }) => {
switch (type) {
case 'GET_DATA':
return [...payload];
default:
return state;
}
};
我的測驗
import { mockedState } from 'mocks';
import {
myReducer,
GET_DATA,
} from 'store';
const initialState = []
describe('reducer', () => {
it('should get data', () => {
const getAction = {
type: GET_DATA,
payload: mockedState.data,
};
expect(myReducer(initialState, getAction )).toEqual([...mockedState.data]);
});
})
uj5u.com熱心網友回復:
在您的減速器中,您"GET_DATA"在開關盒中使用了一個字串。但是從您的測驗來看,您的操作型別是一個變數GET_DATA。嘗試將您的減速機的第一個案例更改為
case GET_DATA: //remove the quotes
這里GET_DATA是從“存盤”。
實際上,我只記得 switch 陳述句的 case 必須是一個常量。所以只要確保你的 GET_DATA 從商店實際上等于“GET_DATA”。
uj5u.com熱心網友回復:
問題似乎圍繞何時可迭代a不“淺”等于[...a]. Ifa是一個應該始終如此的陣列,但對于任何其他可迭代物件,它不是。
我懷疑mockedState.data在失敗的測驗中不是陣列。
例如:
const a = 'hello';
const b = [...a]; // ["h","e","l","l","o"]
在這種情況下,a 不等于 b。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/395325.html
