如何从Typescript中的数据类型创建假对象以进行测试

问题描述

我正在寻找一种简化为Angular解决方案中的单元测试制作虚假数据的方法。 我正在使用如下接口:

export interface ReferenceDataItemCommon {
  codeDescription?: string;
  code: string;
  deleted?: boolean;
}

作为应用程序中的数据类型。当前使用Factory.ts + Faker创建用于测试目的的伪造对象:

  export const fakeReferenceDataItemCommon = Factory.Sync.makeFactory<ReferenceDataItemCommon>({
    code: Factory.each(() => Faker.lorem.word()),codeDescription: Factory.each(() => Faker.lorem.sentence(4)),});

但是我很好奇是否有一种方法可以简化它,例如当您只需要一个对象进行测试并加快其创建速度时。 在Typescript中是否可以有一个通用方法来返回该数据类型的对象?

  const fake = createFake<ReferenceDataItemCommon>();

我最初的想法是做类似的事情:

Object.keys(object).forEach(key => {
  switch(typeof object[key]) {
    case 'string':
       object[key] = Faker.lorem.word();
       break;
  }
}
return object;

对于复杂对象,请递归调用此方法。那有可能吗?如果我觉得自己的深度超出了我的想象范围,那么还有什么更好的方法呢?

解决方法

当您使用 cli 创建工厂时,而不是在运行时是可能的:

https://www.npmjs.com/package/intermock 看起来很有希望

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...