본문 바로가기
카테고리 없음

TestCode: 유닛 테스트 | Jest - Mocking Partials 로 모듈의 일부만 모의 테스트

by nomfang 2023. 7. 13.
728x90
반응형

Mocking Partials

모듈의 일부만 mocking 하여 테스트 할 수 있다

// foo-bar-baz
export const foo = 'foo';
export const bar = () => 'bar';
export default () => 'baz';
import defaultExport, {bar, foo} from '../foo-bar-baz';

jest.mock('../foo-bar-baz', () => {
  const originalModule = jest.requireActual('../foo-bar-baz');

  //Mock the default export and named export 'foo'
  return {
    __esModule: true,
    ...originalModule,
    default: jest.fn(() => 'mocked baz'),
    foo: 'mocked foo',
  };
});

test('should do a partial mock', () => {
  const defaultExportResult = defaultExport();
  expect(defaultExportResult).toBe('mocked baz');
  expect(defaultExport).toHaveBeenCalled();

  expect(foo).toBe('mocked foo');
  expect(bar()).toBe('bar');
});

foo 와 baz 는 mocking 하고 bar 는 기존의 함수를 테스트

반응형

댓글