Я пытаюсь перенести приложение React / Redux на Immutable.JS
и у меня есть вопрос о тестировании.
Учитывая редуктор, который делает что-то вроде этого:
export default (state = initialState, action) => {
switch (action.type) {
case RUN_ENDED:
return state.set('isRunning', false)
.set('roundResult', action.data)
default:
return state
}
Я хотел бы проверить, правильно ли установлены оба свойства.
Мои старые тесты выглядели бы так:
it('should handle the RUN_ENDED action', () => {
const action = {
type: RUN_ENDED,
data: {
winnerId: 0
}
}
const result = simulatorReducer(undefined, action)
expect(result).to.deep.equal({
isRunning: false,
roundResult: action.data
})
})
С Immutable я, кажется, не могу сделать эти сравнения совершенно таким же образом. Я могу явно проверить каждое значение в result
с помощью result.get('theProperty')
, но это кажется немного трудоемким, если у меня есть 5-6 значений.
Есть ли способ сделать это с помощью Immutable?