Jest Testing中非默认类导出的模拟方法

时间:2020-06-18 19:36:04

标签: javascript typescript testing jestjs nestjs

我正在尝试在服务类中模拟一个简单的函数。

// hello.controller.ts

@Get()
  async getHello(): Promise<string> {
    const result = await this.helloService.getHello();
    return result;
  }

// hello.service.ts

export class HelloService { 
    getHello(): string {
       return 'Hello World!';
    }
}

//模拟.ts

export const mockHello = jest.fn((): string => {
  return 'Hello World!';
});

jest.mock('../src/hello/hello.service', () => ({
 get getHello() {
    return mockHello;
   },
 }));

当我测试API执行时,将调用服务函数而不是模拟函数。如何使我的模拟函数而不是服务函数被调用。仅当我将函数设为静态并在嘲讽中使用以下代码时,该嘲讽才起作用。

HelloService.getHello = mockHello;

如何在不使函数静态化的情况下实现上述方案。

0 个答案:

没有答案
相关问题