问题描述
这是选择器
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() 但尝试了不同的方法。
解决方法
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]);
});
});