0

这是选择器

var getId = function getId(state) {
  return state.ids.id;
};

这是我试图为之开玩笑的功能

export function triggerUpdate() {
    store.dispatch(retrieveData(getId(store.getState())));
}

这是我写的测试。但测试失败:错误:无法读取未定义的属性“ID”。

describe('triggerUpdate', () => {
    it('should call the update', () => {
        const expectedPayload = [
            { type: 'RETRIEVE_ID', chorusActions: [] },
        ];
        console.log(store.getState()); // this is coming as empty
        const spy = jest.spyOn(store, 'dispatch');
        expect(spy).toHaveBeenCalledWith(expectedPayload);
    });
});

我需要模拟 getId() 但尝试了不同的方法。

4

1 回答 1

0
const idSelector = require('path');

describe('triggerUpdate', () => {
    it('should call the update', () => {
        idSelector.getId = jest.fn().mockReturnValue('mockId'); // this is how selector is mocked.

        const expectedPayload = [
            { type: 'RETRIEVE_ID', chorusActions: [] },
        ];
        const spy = jest.spyOn(store, 'dispatch');
        expect(spy).toHaveBeenCalledWith(expectedPayload[0]);
    });
});
于 2021-03-02T08:40:10.267 回答