繁体   English   中英

模拟函数,在玩笑中返回模拟值

[英]mock function with return mock value in jest

我使用 react-redux 创建一个中间件,并想为它编写一些测试。 我怎么能嘲笑从辅助函数返回checkNumberHistory这样我就可以测试逻辑if受阻?

import {checkNumberHistory} from '@src/helper';

export const middlewareAction = (): AppThunk => {
  return async (dispatch, getState) => {
    const recordededNumber = getState()?.recordedNumber || 0;
    const strNumber = getState()?.strNumber || 0;
    const isNumberChanged = checkNumberHistory(recordededNumber, strNumber);

    if (isNumberChanged) {
      dispatch(setNumber(strNumber));
    }
  };
};

您应该能够使用jest.mock来模拟checkNumberHistory导入。 下面显示了使用其他命名导入的实际值和checkNumberHistory

jest.mock('@src/helper', () => ({
  ...jest.requireActual('@src/helper'),
  checkNumberHistory: () => 'Some mocked return value',
}));

describe('middleware tests', () => {
  it('does something', () => {
    // test here
  });
});

正如我在评论中提到的,如果我不需要(即,如果它们是确定性的),我倾向于尽量不模拟辅助函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM