Typescript jest mock:无法识别方法语法:`myFunc=async()=>;{}`
当使用jest模拟类中的方法时,我注意到,如果该方法具有以下语法,则该方法可以正常工作: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
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()=>{}
放在哪里?方法的签名没有给我所需的上下文。添加了更多上下文