代码之家  ›  专栏  ›  技术社区  ›  antirealm

用jest模拟模块导出函数

  •  0
  • antirealm  · 技术社区  · 6 年前

    我有个档案 lib.ts :

    export const getValue() { return 'original value'; }
    
    export const callGetValue() { return getValue(); }
    

    lib.spec.ts

    import * as lib from './lib';
    
    // ...
        it('works', () => {
            jest.spyOn(lib, 'getValue').mockImplementation( () => 'new value');
            expect(lib.callGetValue()).toBe('new value'); // it's not!
        });
    // ...
    

    我想嘲笑你 getValue() 'new value' . 不是的。为什么?

    1 回复  |  直到 6 年前
        1
  •  2
  •   SimenB    6 年前

    不幸的是,这实际上是不可能的,请参阅中的讨论 https://github.com/facebook/jest/issues/936