如何在我的玩笑测试中模拟谷歌应用脚本界面,如Logger / DataStudio?



我正在尝试测试我们的DataStudio代码(在Typescript中(,它使用google-apps-script库中的某些接口,例如LoggerDataStudio接口。它们驻留在.d.ts文件中,所以我不能轻易导入它们。以下是google-apps-script.base.d.ts文件中定义Logger的方式:

/// <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,所以我需要以某种方式模拟这些接口。

有谁知道如何导入这些接口以便模拟它们?感谢您的任何帮助!

参见 Mocking globals in Jest。例如,要模拟控制台,您可以在测试文件的顶部显示以下内容:

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