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 는 기존의 함수를 테스트
반응형
댓글