Jest,Angular-嵌套函数未在Reducer测试上调用

时间:2018-10-28 05:57:00

标签: angular unit-testing nested jestjs reducers

我目前正在为减速器进行测试。 但是在一个reducer上,我内部调用了一个函数来解决我的状态。 问题在于测试该函数不会返回任何内容,我必须对其进行模拟才能测试我的reducer。我尝试了几件事,但是没有运气,经过数小时的搜索和尝试不同的选择,我没有想法。我正在使用Jest和Angular。

reducer和功能的代码为:

 case ConfigurationActionTypes.GetResumePage: {
            const resumePageData = getResumePageData(state);
            return {
                ... state, resumePage: {
                    ... resumePageData
                }
            };
        }
      default:
        return state;
    }   } 

export function getResumePageData(state: ConfigureState): ResumeConfigurationModelUI { //Logic of the ResumePage a little bit long to copy to here }

现在的测试代码:

it('should generate the resume page with the added sensor', () => {
        const sensorList: SensorModelUI[] = mockSensorModelUI.buildList(3);
        const actionToAddSensors = new GetSensorsSuccess(sensorList);
        const stateWithAddedSensors = reducer(initialState, actionToAddSensors);
        const addedSensor: SensorModelUI = mockSensorModelUI.build({Id: 10});
        const actionToAddNewSensor = new AddSensorSuccess(addedSensor);
        const stateWithNewSensor = reducer(stateWithAddedSensors, actionToAddNewSensor);
        const actionToGetResumePage = new GetResumePage({});
        const result = reducer(stateWithNewSensor, actionToGetResumePage);
        expect(result).toEqual({
            ... stateWithNewSensor,
            resumePage: {
                ... stateWithNewSensor,
                addedSensors: [addedSensor]
            }
        });
    });
    });

基本上,当我创建调用reducer函数的结果变量以及对GetResumePage的操作时,他什么也不创建,并且始终返回相同的空对象。

所以我想我需要定义一些模拟,该模拟返回调用getResumePageData函数时的预期结果。 任何帮助,将不胜感激。 谢谢。

0 个答案:

没有答案