Как я могу издеваться над интерфейсами google-apps-script, такими как Logger / DataStudio, в моих шутливых тестах? - PullRequest
1 голос
/ 15 января 2020

Я пытаюсь протестировать наш код DataStudio (в Typescript), который использует определенные интерфейсы из библиотек google-apps-script, например, интерфейсы Logger и DataStudio. Они находятся в .d.ts файлах, поэтому я не могу их легко импортировать. Вот как Logger определяется в файле google-apps-script.base.d.ts:

/// <reference path="google-apps-script.types.d.ts" />

declare namespace GoogleAppsScript {
  export module Base {
  [...]
    export interface Logger {
      clear(): void;
      getLog(): string;
      log(data: Object): Logger;
      log(format: string, ...values: Object[]): Logger;
    }
  }
}
declare var Logger: GoogleAppsScript.Base.Logger;

Я запускаю шутливые тесты для функций, которые используют эти интерфейсы, но я получаю, например, Logger is not defined, поэтому мне нужно каким-то образом издеваться над этими интерфейсами.

Кто-нибудь знает, как я могу импортировать эти интерфейсы, чтобы я мог издеваться над ними? Спасибо за любую помощь!

1 Ответ

1 голос
/ 05 февраля 2020

См. Насмешливые глобалы в Jest . Например, для макета консоли в верхней части тестового файла может быть следующее:

global.Logger = jest.fn(console.log)
...