การทดสอบหน่วยสำหรับเทมเพลตที่กำหนดเองของ Google Tag Manager ช่วยคุณตรวจสอบฟังก์ชันการทำงานของเทมเพลตได้ คุณสร้างชุดการทดสอบสำหรับแต่ละเทมเพลตได้ ที่จะเรียกใช้ได้โดยไม่ต้องใช้แท็ก ซึ่งจะช่วยให้คุณทำสิ่งต่อไปนี้ ทดสอบลักษณะการทำงานของเทมเพลตอย่างต่อเนื่องในระหว่างการพัฒนา การทดสอบแต่ละรายการสามารถ ให้ตัวอย่างค่าอินพุต จำลองการเรียกใช้ฟังก์ชัน และยืนยันการทำงานของโค้ด
ข้อจำกัด
- การทดสอบหน่วยจะไม่ตรวจสอบกฎการตรวจสอบ แต่คุณสามารถตรวจสอบการตรวจสอบได้ด้วยตนเองโดยใช้ปุ่มเรียกใช้โค้ด
- การตรวจสอบสิทธิ์จะไม่เกิดขึ้นใน API ที่เลียนแบบในการทดสอบหน่วย
คู่มือนี้จะแนะนำวิธีเขียนการทดสอบ 1 หน่วยสำหรับเทมเพลตที่กำหนดเอง ตัวอย่างนี้สร้างเทมเพลตตัวแปรที่ใช้สตริงอินพุตและส่งกลับ เวอร์ชันตัวพิมพ์ใหญ่ของสตริงนั้น
- สร้างเทมเพลตตัวแปรใหม่ คลิกเทมเพลตในการนำทางด้านซ้าย แล้วคลิกใหม่ในส่วนเทมเพลตตัวแปร 
- คลิกช่อง 
- คลิกเพิ่มช่องแล้วเลือกการป้อนข้อความ ตั้งชื่อช่อง - text1และตั้งชื่อที่แสดงเป็น "Text 1"
- ในแท็บโค้ด ให้แทนที่โค้ดเริ่มต้นด้วย 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'ที่คาดไว้- runCodeAPI จะใช้เพื่อเรียกใช้โค้ดเทมเพลตในแท็บโค้ด อาร์กิวเมนต์ของ- runCodeคือออบเจ็กต์ที่ใช้เป็นข้อมูลส่วนกลาง- assertThatAPI จะแสดงผลออบเจ็กต์ที่ใช้ยืนยันค่าของวิชาได้อย่างคล่องแคล่ว
- คลิก ▶ ทำการทดสอบเพื่อทำการทดสอบ ผลลัพธ์ของการทดสอบจะปรากฏในคอนโซล - ปุ่ม ▶ เรียกใช้การทดสอบจะเรียกใช้การทดสอบที่เปิดใช้ทั้งหมดในเทมเพลตตามลําดับที่แสดง หากต้องการเปลี่ยนลําดับ ให้ใช้ไอคอนลาก (⠿) คุณสามารถเปิดหรือปิดใช้การทดสอบชั่วคราวได้โดยคลิกวงกลมทางด้านซ้ายของชื่อการทดสอบ หากต้องการเรียกใช้การทดสอบเดียว ให้คลิกปุ่ม ▶ ที่ปรากฏขึ้นเมื่อคุณเลื่อนเมาส์ไปวางบนการทดสอบ - คอนโซลควรพิมพ์จำนวนการทดสอบทั้งหมดที่ดำเนินการและจำนวนการทดสอบที่ไม่สำเร็จ (หากมี) ในกรณีนี้ มีการดำเนินการทดสอบเพียงครั้งเดียวซึ่งควรผ่าน 
- คลิกเพิ่มการทดสอบอีกครั้งเพื่อเพิ่มการทดสอบที่ 2 เปลี่ยนชื่อการทดสอบจาก "การทดสอบที่ไม่มีชื่อ 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ก่อนใช้งาน
- คลิกการทดสอบเพื่อกลับไปยังรายการกรอบการทดสอบ 
- คลิก ▶ เรียกใช้การทดสอบ เพื่อเรียกใช้กรอบการทดสอบทั้งหมดอีกครั้ง ครั้งนี้การทดสอบแฮนเดิลที่ไม่ระบุควรผ่าน 
- คลิกบันทึก แล้วปิดเครื่องมือแก้ไขเทมเพลต