Google 代碼管理工具自訂範本的單元測試可協助您驗證範本的功能。您可以為每個範本建立一組測試 不必部署代碼就能執行 在開發過程中持續測試範本的行為。每項測試都能 提供範例輸入值、模擬函式呼叫,以及斷言程式碼行為。
限制
- 單元測試不會檢查驗證規則,但您可以使用「Run Code」按鈕手動檢查驗證。
- 系統不會對單元測試中的模擬 API 執行權限檢查。
本指南將逐步說明如何為自訂範本編寫單元測試。這個範例會建立可擷取輸入字串的變數範本 也就是大寫版本
建立新的變數範本。按一下左側導覽面板中的「範本」,然後點選「變數範本」部分下方的「新增」。
按一下「欄位」。
按一下「新增欄位」並選取「文字輸入」。將欄位命名為
text1
,並將顯示名稱設為「Text 1」。在「Code」分頁中,將預設程式碼替換為這個沙箱 JavaScript:
let input = data.text1; return input.toUpperCase();
按一下「測試」開啟「測試」分頁。
按一下「新增測試」,然後將測試名稱從「未命名的測試 1」變更為 「處理字串」。
按一下展開圖示 (expand_more),顯示測試的沙箱 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 可用來執行「Code」分頁中的範本程式碼。runCode
的引數是一個物件,做為全域資料使用。assertThat
API 會傳回一個物件,可用來流暢地對主體值做出斷言。按一下「▶ 執行測試」執行測試。測試的輸出結果會顯示在控制台中。
點選「▶ Run Tests」按鈕會依照顯示順序,執行範本中所有已啟用的測試。如要變更順序,請使用拖曳圖示 (↘)。您可以按一下測試名稱左側的圓圈,暫時啟用或停用測試。如要執行單一測試,請將滑鼠遊標懸停在測試上,然後按一下隨即顯示的 ▶ 按鈕。
控制台應會顯示測試的執行總數和失敗的測試數量 (如果有的話)。在本例中,系統只會執行一項測試,且應通過。
再次點選「Add Test」,新增第二個測試。將測試名稱從「未命名的測試 2」變更為「處理未定義的測試」。
按一下測試即可展開,並開啟沙箱 JavaScript 編輯器。在編輯器中輸入採用沙箱機制的 JavaScript:
let variableResult = runCode({}); assertThat(variableResult).isEqualTo(undefined);
按一下「▶」執行測試,一次執行所有測試。測試的輸出結果會顯示在控制台中。
「處理未定義的」測試應會失敗。恭喜,您發現了錯誤!
按一下「程式碼」返回並編輯範本的沙箱 JavaScript 程式碼。按照下列方式更新沙箱 JavaScript:
const getType = require('getType'); let input = data.text1; if (getType(input) !== 'string') { return input; } return input.toUpperCase();
更新後的程式碼是先驗證
input
變數再使用的最佳做法。按一下「測試」即可返回測試案例清單。
按一下「▶ 執行測試」,再次執行所有測試案例。這次「Handles undefined」測試應會通過。
按一下「儲存」,然後關閉範本編輯器。