การทดสอบหน่วยสําหรับเทมเพลตที่กําหนดเองของ Google Tag Manager ช่วยให้คุณตรวจสอบฟังก์ชันของเทมเพลตได้ คุณสามารถสร้างชุดการทดสอบสําหรับเทมเพลตแต่ละรายการ ที่เรียกใช้ได้โดยไม่ต้องใช้แท็ก ซึ่งจะช่วยให้คุณทดสอบลักษณะการทํางานของเทมเพลตได้อย่างต่อเนื่องระหว่างการพัฒนา การทดสอบแต่ละครั้งจะให้ค่าอินพุตตัวอย่าง เลียนแบบการเรียกใช้ฟังก์ชัน และยืนยันการทํางานของโค้ดได้
ข้อจำกัด
- การทดสอบหน่วยโฆษณาไม่ได้ตรวจสอบกฎการตรวจสอบ แต่คุณจะตรวจสอบด้วยตนเองได้โดยใช้ปุ่มเรียกใช้โค้ด
- การตรวจสอบสิทธิ์จะไม่เกิดขึ้นใน API ที่เลียนแบบในการทดสอบหน่วย
คู่มือนี้จะแนะนําวิธีเขียนการทดสอบหน่วยโฆษณาสําหรับเทมเพลตที่กําหนดเองของคุณ ตัวอย่างนี้สร้างเทมเพลตตัวแปรที่ใช้สตริงอินพุตและแสดงผลสตริงเวอร์ชันระดับบน
สร้างเทมเพลตตัวแปรใหม่ คลิกเทมเพลตในการนําทางด้านซ้าย แล้วคลิกใหม่ในส่วนเทมเพลตตัวแปร
คลิกช่อง
คลิกเพิ่มช่องแล้วเลือกการป้อนข้อความ ตั้งชื่อช่อง
text1
และตั้งชื่อที่แสดงเป็น "ข้อความ 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'
ระบบจะใช้runCode
API เพื่อเรียกใช้โค้ดเทมเพลตในแท็บโค้ด อาร์กิวเมนต์ไปยังrunCode
เป็นออบเจ็กต์ที่ใช้เป็นไฟล์ทั่วโลกassertThat
API จะแสดงออบเจ็กต์ที่สามารถใช้เพื่อยืนยันค่าของหัวเรื่องได้คลิก ♪ ทําการทดสอบ เพื่อทําการทดสอบ เอาต์พุตของการทดสอบจะปรากฏในคอนโซล
ปุ่ม PLAYLIST ทดสอบ จะเรียกใช้การทดสอบที่เปิดใช้ทั้งหมดในเทมเพลตตามลําดับที่แสดง หากต้องการเปลี่ยนลําดับ ให้ใช้ไอคอนลาก (⠿) คุณสามารถเปิดหรือปิดใช้การทดสอบชั่วคราวได้โดยคลิกวงกลมทางด้านซ้ายของชื่อการทดสอบ หากต้องการเรียกใช้การทดสอบรายการเดียว ให้คลิกปุ่ม เพลย์ลิสต์ ที่ปรากฏเมื่อคุณเลื่อนเมาส์เหนือการทดสอบ
คอนโซลควรพิมพ์จํานวนการทดสอบทั้งหมดที่ใช้งานอยู่ และจํานวนการทดสอบที่ล้มเหลว (หากมี) ในกรณีนี้ ทําการทดสอบเพียง 1 รายการและควรผ่านการทดสอบ
คลิกเพิ่มการทดสอบอีกครั้งเพื่อเพิ่มการทดสอบที่ 2 เปลี่ยนชื่อการทดสอบจาก "การทดสอบที่ไม่มีชื่อ 2" เป็น "ไม่ได้ระบุแฮนเดิล"
คลิกการทดสอบเพื่อขยายและแสดงเครื่องมือแก้ไข JavaScript ที่ทําแซนด์บ็อกซ์ ป้อน JavaScript ที่แซนด์บ็อกซ์ในเครื่องมือแก้ไข
let variableResult = runCode({}); assertThat(variableResult).isEqualTo(undefined);
คลิก PLAYLIST ทําการทดสอบ เพื่อทําการทดสอบทั้งหมดพร้อมกัน เอาต์พุตของการทดสอบจะปรากฏในคอนโซล
การทดสอบแฮนเดิลที่ไม่ได้กําหนดควรล้มเหลว ยินดีด้วย คุณพบข้อบกพร่อง
คลิกโค้ดเพื่อย้อนกลับและแก้ไขโค้ด JavaScript ที่ทําแซนด์บ็อกซ์ของเทมเพลต อัปเดต JavaScript ที่ทําแซนด์บ็อกซ์ดังนี้
const getType = require('getType'); let input = data.text1; if (getType(input) !== 'string') { return input; } return input.toUpperCase();
โค้ดที่อัปเดตทําตามแนวทางปฏิบัติแนะนําในการตรวจสอบตัวแปร
input
ก่อนใช้งานคลิกการทดสอบเพื่อกลับไปที่รายการกรอบการทดสอบ
คลิกเพลย์ลิสต์ ทดสอบ เพื่อทํากรอบการทดสอบทั้งหมดอีกครั้ง ซึ่งควรผ่านการทดสอบแฮนเดิลที่ไม่ได้กําหนด
คลิกบันทึก และปิดเครื่องมือแก้ไขเทมเพลต