我正在尝试在服务类中模拟一个简单的函数。
// 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;
如何在不使函数静态化的情况下实现上述方案。