Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript jest mock:无法识别方法语法:`myFunc=async()=>;{}`_Typescript_Jestjs_Ts Jest - Fatal编程技术网

Typescript jest mock:无法识别方法语法:`myFunc=async()=>;{}`

Typescript jest mock:无法识别方法语法:`myFunc=async()=>;{}`,typescript,jestjs,ts-jest,Typescript,Jestjs,Ts Jest,当使用jest模拟类中的方法时,我注意到,如果该方法具有以下语法,则该方法可以正常工作: async myFunc() { return ...} 但是,当按以下方式书写时: myFunc = async () => {} if返回TypeError:无法读取未定义的属性“mockImplementation” 一、 然而,很多人更喜欢第二种语法。有没有办法让它与Jest一起工作(它在代码的其余部分工作) 背景: abstract class QueryService { asy

当使用jest模拟类中的方法时,我注意到,如果该方法具有以下语法,则该方法可以正常工作:

async myFunc() { return ...}
但是,当按以下方式书写时:

myFunc = async () => {}
if返回
TypeError:无法读取未定义的属性“mockImplementation”

一、 然而,很多人更喜欢第二种语法。有没有办法让它与Jest一起工作(它在代码的其余部分工作)


背景:

abstract class QueryService {
  async myFunc<A = any>(
      arg1: string,
      arg2: A
    ): Promise<{ uuid: string }> {}
}
simple.ts中

class SimpleQueryService extends QueryService {
 // nothing here
}
然后

jest.mock("../query/simple");

export const qs = new QueryService("host", "token");

const mockInsert = qs.myFunc as jest.Mock;

如果模拟函数出现错误,我建议使用
jest.fn()
。您还可以使用它模拟实现,如下所示:

qs.myFunc = jest.fn().mockImplementation(() => {
    // Your mock implementation
})
您也可以简单地模拟返回值,如下所示:

qs.myFunc = jest.fn().mockReturnValue(/* Your mocked return value */);

你在哪里写这些?我刚刚编辑了我的问题以便更清楚地说明你把代码
myFunc=async()=>{}
放在哪里?方法的签名没有给我所需的上下文。添加了更多上下文