模拟并实例化打字稿类型以进行单元测试

时间:2020-04-28 02:33:48

标签: typescript unit-testing graphql

我在导入GraphQL解析器的文件中具有类型的集合,以定义将在每个解析器方法中接收的类型。我要对该解析器进行单元测试。为简单起见,下面的代码是被测试的方法:

    const resolver = {
      ...,
      MyThing: {
        id: (myThing: MyType): string => myThing.identifier,
      },
      ...
    };

MyType类型巨大,具有太多必需的属性:

export type MyType = {
  __typename?: 'MyType';
  identifier: string;
  requiredField0: string;
  requiredField1: AnotherType;
  requiredField2: Array<YetAnotherType>;
  ...
  requiredField30: string;
}

如果我遗漏了某个属性,则会显示一条错误消息:

类型{...}中缺少属性'advancedId',但类型'MyType'中必需。

是否有一个库来使用模拟数据自动填充类型?还是应该为这些类型的所有测试创建共享的实例化模拟?

在单元测试中处理这些大类型的正确方法是什么?它们不会在应用程序代码中的任何地方实例化。

0 个答案:

没有答案