Typescript 如何开玩笑.mock简单git/promise

Typescript 如何开玩笑.mock简单git/promise,typescript,jestjs,Typescript,Jestjs,我正在测试mocksimple git/promisecheckout函数,但没有成功。这就是我所做的 jest.mock('simple-git/promise', () => { return { checkout: async () => { Promise.resolve(); } } }); 有人能帮忙吗?以下是单元测试示例: index.ts: 从“简单git/promise”导

我正在测试mock
simple git/promise
checkout函数,但没有成功。这就是我所做的

    jest.mock('simple-git/promise', () => {
      return {
        checkout: async () => {
          Promise.resolve();
        }
      }
    });

有人能帮忙吗?

以下是单元测试示例:

index.ts

从“简单git/promise”导入git;
函数main(){
git().checkout('https://github.com/user/repo.git');
}
导出默认主;
index.test.ts

从“/”导入main;
从“简单git/promise”导入git;
jest.mock('simple-git/promise',()=>{
常数mGit={
签出:jest.fn(),
};
return jest.fn(()=>mGit);
});
描述('60018953',()=>{
它('应该通过',()=>{
main();
expect(git().checkout).toBeCalledWith('https://github.com/user/repo.git');
});
});
100%覆盖率的单元测试结果:

通过src/stackoverflow/60018953/index.test.ts
60018953
✓ 应通过(8ms)
----------|----------|----------|----------|----------|-------------------|
文件|%Stmts |%Branch |%Funcs |%Line |未覆盖行|s|
----------|----------|----------|----------|----------|-------------------|
所有文件| 100 | 100 | 100 | 100 ||
index.ts | 100 | 100 | 100 | 100 ||
----------|----------|----------|----------|----------|-------------------|
测试套件:1个通过,共1个
测试:1项通过,共1项
快照:共0个
时间:7.24秒,预计13秒

源代码:

根据库的不同,模拟模块可能会变得毛茸茸的。小建议作为开始,不要实现checkout,使用jest-mock`jest.mock('simple-git/promise',()=>({checkout:jest.fn()}));