การทดสอบหน่วยสำหรับเทมเพลตที่กำหนดเองของ 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'
ที่คาดไว้runCode
API จะใช้เพื่อเรียกใช้โค้ดเทมเพลตในแท็บโค้ด อาร์กิวเมนต์ของrunCode
คือออบเจ็กต์ที่ใช้เป็นข้อมูลส่วนกลางassertThat
API จะแสดงผลออบเจ็กต์ที่ใช้ยืนยันค่าของวิชาได้อย่างคล่องแคล่วคลิก ▶ ทำการทดสอบเพื่อทำการทดสอบ ผลลัพธ์ของการทดสอบจะปรากฏในคอนโซล
ปุ่ม ▶ เรียกใช้การทดสอบจะเรียกใช้การทดสอบที่เปิดใช้ทั้งหมดในเทมเพลตตามลําดับที่แสดง หากต้องการเปลี่ยนลําดับ ให้ใช้ไอคอนลาก (⠿) คุณสามารถเปิดหรือปิดใช้การทดสอบชั่วคราวได้โดยคลิกวงกลมทางด้านซ้ายของชื่อการทดสอบ หากต้องการเรียกใช้การทดสอบเดียว ให้คลิกปุ่ม ▶ ที่ปรากฏขึ้นเมื่อคุณเลื่อนเมาส์ไปวางบนการทดสอบ
คอนโซลควรพิมพ์จำนวนการทดสอบทั้งหมดที่ดำเนินการและจำนวนการทดสอบที่ไม่สำเร็จ (หากมี) ในกรณีนี้ มีการดำเนินการทดสอบเพียงครั้งเดียวซึ่งควรผ่าน
คลิกเพิ่มการทดสอบอีกครั้งเพื่อเพิ่มการทดสอบที่ 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
ก่อนใช้งานคลิกการทดสอบเพื่อกลับไปยังรายการกรอบการทดสอบ
คลิก ▶ เรียกใช้การทดสอบ เพื่อเรียกใช้กรอบการทดสอบทั้งหมดอีกครั้ง ครั้งนี้การทดสอบแฮนเดิลที่ไม่ระบุควรผ่าน
คลิกบันทึก แล้วปิดเครื่องมือแก้ไขเทมเพลต