測試

Google 代碼管理工具自訂範本的單元測試可協助您驗證範本的功能。您可以為每個可執行的範本建立一組測試,而不需要部署標記,這可讓您在開發期間持續測試範本的行為。每項測試都可以提供範例輸入值、模擬函式呼叫和宣告程式碼行為。

限制

  • 單元測試不會檢查驗證規則,但您可以使用 [執行程式碼] 按鈕手動檢查驗證。
  • 針對單元測試中的模擬 API 進行權限檢查。

本指南將逐步說明如何為自訂範本撰寫單元測試。這個範例會建立可擷取輸入字串的變數範本,並傳回該字串的大寫版本。

  1. 建立新的變數範本。在左側導覽列中點選 [範本],然後按一下「變數範本」部分下方的 [新增]。

  2. 按一下 [欄位]

  3. 按一下 [新增欄位],然後選取 [文字輸入]。為欄位 text1 命名,並將顯示名稱設定為 "Text 1"

  4. 在「程式碼」分頁中,用預設沙箱的 JavaScript 取代預設程式碼:

    let input = data.text1;
    return input.toUpperCase();
    
  5. 按一下 [測試] 以開啟測試分頁。

  6. 按一下 [新增測試],然後將測試名稱從「未命名的測試 1」變更為「處理字串」

  7. 按一下展開圖示 (),即可顯示測試採用沙箱機制的 JavaScript 編輯器。將程式碼替換為此沙箱化的 JavaScript:

    // Call runCode to run the template's code with a lowercase string
    let variableResult = runCode({text1: 'this is a test'});
    // Validate that the result of runCode is an uppercase string.
    assertThat(variableResult).isEqualTo('THIS IS A TEST');
    

    這項測試會將字串 'this is a test' 傳送至變數,並確認變數會傳回 'THIS IS A TEST' 的預期值。runCode API 可用於在「程式碼」分頁中執行範本程式碼。runCode 的引數是全球通用的資料。assertThat API 會傳回物件,可順暢地討論主體的值。

  8. 按一下「▶ 執行測試」即可執行測試。測試的輸出結果會顯示在主控台中。

    ▶ [執行測試] 按鈕會依照顯示順序執行範本中所有已啟用的測試。如要變更排序,請使用拖曳圖示 (⠿)。只要按一下測試名稱左側的圓圈,即可暫時啟用或停用測試。如要執行單一測試,請將滑鼠移至測試上方顯示的 ▶ 按鈕。

    控制台應該會顯示執行測試的總數,以及失敗的測試數量 (如果有的話)。在這種情況下,系統只會執行一項測試,且應通過測試。

  9. 再按一下 [新增測試] 即可新增第二個測試。將測試名稱從 "Untitled test 2" 變更為 "Handles undefined"

  10. 按一下測試即可展開測試,並顯示沙箱模式的 JavaScript 編輯器。在編輯器中輸入採用沙箱機制的 JavaScript:

    let variableResult = runCode({});
    assertThat(variableResult).isEqualTo(undefined);
    
  11. 按一下 [▶ 執行測試],一次執行所有測試。測試的輸出結果會顯示在主控台中。

    「處理未定義的」測試應會失敗。恭喜!你找到了錯誤!

  12. 按一下 [程式碼] 即可返回並編輯範本的沙箱 JavaScript 程式碼。請按照下列方式更新沙箱 JavaScript:

    const getType = require('getType');
    
    let input = data.text1;
    if (getType(input) !== 'string') {
      return input;
    }
    return input.toUpperCase();
    

    更新後的程式碼會遵循驗證 input 變數的最佳做法,然後再加以使用。

  13. 按一下 [測試] 即可返回測試案例清單。

  14. 按一下 [▶ 執行測試],再次執行所有測試案例。這次「處理未定義的」測試應通過。

  15. 按一下 [儲存],然後關閉範本編輯器。