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

Angular 如何从Typescript中的数据类型创建假对象进行测试,angular,typescript,unit-testing,jasmine,Angular,Typescript,Unit Testing,Jasmine,我正在寻找一种方法来简化在角度解中为单元测试生成假数据的过程。 我使用的界面如下: export interface ReferenceDataItemCommon { codeDescription?: string; code: string; deleted?: boolean; } 作为应用程序中的数据类型。目前正在使用Factory.ts+Faker创建用于测试的假对象: export const fakeReferenceDataItemCommon = Facto

我正在寻找一种方法来简化在角度解中为单元测试生成假数据的过程。 我使用的界面如下:

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)),
  });

对于复杂对象,递归调用此方法。这是可能的,如果我觉得有点不得要领,那么有什么更好的方法来实现这一点呢?

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


看起来很有希望

您无法从类型创建值。TypeScript类型信息在运行时不存在。我认为使用代码生成应该可以做到这一点。使用cli创建工厂,而不是在运行时。我目前正在寻找这样一个东西,可能会建造它。
  const fake = createFake<ReferenceDataItemCommon>();
Object.keys(object).forEach(key => {
  switch(typeof object[key]) {
    case 'string':
       object[key] = Faker.lorem.word();
       break;
  }
}
return object;