如何用jest模拟typescript接口?

如何用jest模拟typescript接口?,typescript,jestjs,mocking,Typescript,Jestjs,Mocking,我想模拟一个typescript接口,我怎样才能实现呢? 当我得到人类的属性时,我想返回“Test”并活着。 我在编译下面给定的代码时遇到困难 错误 示例代码 enum状态 { 死去的 活着的 } 导出接口人{ 名称:字符串; 状态:status.ALIVE | status.DEAD; }; 描述('人',()=>{ const mock=jest.fn(()=>{ 名称:jest.fn(()=>{return'Test'}); 状态:jest.fn(()=>{return status.AL

我想模拟一个typescript接口,我怎样才能实现呢? 当我得到人类的属性时,我想返回“Test”并活着。 我在编译下面给定的代码时遇到困难

错误 示例代码
enum状态
{
死去的
活着的
}
导出接口人{
名称:字符串;
状态:status.ALIVE | status.DEAD;
};
描述('人',()=>{
const mock=jest.fn(()=>{
名称:jest.fn(()=>{return'Test'});
状态:jest.fn(()=>{return status.ALIVE});
});
它('应该返回属性',()=>{
console.log(human.name);
console.log(human.status);
});
});

您返回的是
name
status
属性的模拟函数,但它们不是函数类型。对于
Human
界面的这两个属性,您应该返回
string
enum

enum STATUS {
  DEAD,
  ALIVE,
}

export interface Human {
  name: string;
  status: STATUS.ALIVE | STATUS.DEAD;
}

describe('Human', () => {
  const mock = jest.fn<Human, []>(() => {
    return {
      name: 'Test',
      status: STATUS.ALIVE,
    };
  });

  it('should return properties', () => {
    const human = mock();
    expect(human.name).toEqual('Test');
    expect(human.status).toEqual(STATUS.ALIVE);
  });
});
enum状态{
死去的
活着的
}
导出接口人{
名称:字符串;
状态:status.ALIVE | status.DEAD;
}
描述('人',()=>{
const mock=jest.fn(()=>{
返回{
名称:'测试',
状态:status.ALIVE,
};
});
它('应该返回属性',()=>{
const human=mock();
expect(human.name).toEqual('Test');
expect(human.status)、toEqual(status.live);
});
});
enum STATUS
{
   DEAD,
   ALIVE
}
    
export interface Human {
   name: string;
   status: STATUS.ALIVE | STATUS.DEAD;
};
  
describe('Human', () => {
   const mock = jest.fn<Human,[]>(() => {
    name   : jest.fn(() => { return 'Test' });
    status : jest.fn(() => { return STATUS.ALIVE });
});

it('should return properties',() => {
    console.log(human.name);
    console.log(human.status);
   });
});
enum STATUS {
  DEAD,
  ALIVE,
}

export interface Human {
  name: string;
  status: STATUS.ALIVE | STATUS.DEAD;
}

describe('Human', () => {
  const mock = jest.fn<Human, []>(() => {
    return {
      name: 'Test',
      status: STATUS.ALIVE,
    };
  });

  it('should return properties', () => {
    const human = mock();
    expect(human.name).toEqual('Test');
    expect(human.status).toEqual(STATUS.ALIVE);
  });
});