小编Jam*_*sse的帖子

使用 CLASP 测试 GAS 时如何模拟依赖项

背景

我最近了解了CLASP,并对使用TDD在本地编辑我的Google Apps 脚本(GAS)的可能性感到兴奋。

注意:可能有一种方法可以使用现有的 GAS 编辑器编写测试,但如果可能的话,我更愿意使用现代编辑器

clasp 效果很好,但我不知道如何模拟单元测试的依赖项(主要是通过jest,尽管我很高兴使用任何有效的工具)

  • 我通过使用gas-local包获得了最远的距离,并且能够在测试中模拟单个依赖项
    • 但是我找不到在单个测试/调用中模拟多个依赖项的方法,所以我创建了这个问题

挑战

尽管安装了@types/google-apps-script,但我不清楚如何分别“要求”或“导入”Google Apps Script 模块是使用 ES5 还是 ES2015 语法——请参见下面的说明。

相关的 StackOverflow 帖子

虽然在测试单元中的相似,所以问题在这里,大部分的内容/评论似乎是从预扣时代,我无法在一个解决方案,同时跟进余下的引线到达。(当然,我未经训练的眼睛很可能漏掉了一些东西!)。

尝试

使用gas-local

正如我上面提到的,在使用 gas-local 时尝试模拟多个依赖项后,我创建了一个问题(见上面的链接)。我的配置类似于jest.mock我在下面描述的测试,但值得注意的是以下差异:

  • 我使用 ES5 语法进行gas-local测试
  • 我的包配置可能略有不同

使用 jest.mock

LedgerScripts.test.js

import { getSummaryHTML } from "./LedgerScripts.js";
import { SpreadsheetApp } from '../node_modules/@types/google-apps-script/google-apps-script.spreadsheet';

test('test a thing', () => {
    jest.mock('SpreadSheetApp', () => {
        return jest.fn().mockImplementation(() …
Run Code Online (Sandbox Code Playgroud)

tdd unit-testing google-apps-script jestjs clasp

6
推荐指数
1
解决办法
618
查看次数

标签 统计

clasp ×1

google-apps-script ×1

jestjs ×1

tdd ×1

unit-testing ×1