написание контрольных примеров для редуктора - PullRequest
0 голосов
/ 20 декабря 2018

Я новичок в react-redux.Здесь я пытаюсь написать контрольный пример для редуктора.

, поэтому мой редуктор выглядит так:

const initialState = {
    Low: [
        {
            id: 0,
            technologyId: 0,
            technology: '',
            type: '',
            count: '',
            allowded: 6,
            level: 'EASY'
        }
    ],
    Medium: [
        {
            id: 0,
            technologyId: 0,
            technology: '',
            type: '',
            count: '',
            allowded: 7,
            level: 'MEDIUM'
        }
    ],
    High: [
        {
            id: 0,
            technologyId: 0,
            technology: '',
            type: '',
            count: '',
            allowded: 7,
            level: 'TOUGH'
        }
    ]
}
export default function QuizData(state = initialState, action) {
    switch (action.type) {
        case QUIZ_DATA:
            return {
                ...state,
                Low: action.data,
                error: false,
            }
        case ADD_NEW:
            return {
                ...state,
                [action.data.addtype]: action.data.addData,
                error: false,
            }
        case REMOVE_TECH:
            return {
                ...state,
                [action.data.removeType]: action.data.newArr,
                error: false,
            }
        default:
            return state
    }
}

В этом случае, который происходит в add_new, еще один объект получаетдобавлен в массив, соответствующий type.

Итак, написанный мной тест выглядит так:

it("should add the new Row in the given type", () => {
      const addData = [{
            id: 0,
            technologyId: 0,
            technology: '',
            type: 'CODE',
            count: '',
            allowded: 6,
            level: 'EASY'},
            {
            id: 1,
            technologyId: 0,
            technology: '',
            type: 'NON_CODE',
            count: '',
            allowded: 6,
            level: 'EASY'
        }]
      const payload = { addtype: "Low", addData: addData};
      expect(LowLevelDataReducer(undefined, {
        type: ADD_NEW,
        data: payload
      })).toEqual(
        {
          ...initialState,
          [payload.addtype]: payload.addData,
          error: false
        }
      ) 
  })

Здесь initialState совпадает.

Итак, это правильный способ написать это или неправильно?

1 Ответ

0 голосов
/ 20 декабря 2018

вам нужно вызвать функцию QuizData и ожидать нового состояния ... Вам не нужно помещать логику распространения в ваш toEqual

let newstate = QuizData ({}, полезная нагрузка)

Ожидайте (newstate.expectedProperty.value) .toEqual (Ожидаемое значение)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...