Я пытаюсь протестировать приложение React с Redux (react-redux
+ reduxsauce
), используя Jest.Я реализовал следующий подход:
import { createActions, createReducer } from "reduxsauce";
/**
* Action types & creators
*/
export const { Types, Creators } = createActions({
addSample: ["text"],
removeSample: ["id"]
});
/**
* Handlers
*/
export const INITIAL_STATE = [];
export function add(state = INITIAL_STATE, action) {
return [...state, { id: Math.random(), text: action.text }];
}
export function remove(state = INITIAL_STATE, action) {
return state.filter(sample => sample.id !== action.id);
}
/**
* Reducer
*/
export default createReducer(INITIAL_STATE, {
[Types.ADD_SAMPLE]: add,
[Types.REMOVE_SAMPLE]: remove
});
Эта реализация позволяет мне использовать хранилище Redux между компонентами.Тем не менее, в тесте я не могу достичь 100% покрытия, потому что только в критерии Branch I покрытие 0% (в других критериях я достигаю 100% - Statements, Functions, Lines);В ответе на Покрытие указано, что в строках 16 и 20 я не выполняю тесты, в объявлениях обработчиков add()
и remove()
.
Я предполагаю, что внутренне reduxsauce
реализует Reducer с некоторыми switch case
, но я понятия не имею, как я могу тестировать эту часть пути, чтобы разрешить критерии покрытия теста