जांच

Google Tag Manager के कस्टम टेंप्लेट के लिए यूनिट टेस्ट से, आपको अपने टेंप्लेट के फ़ंक्शन की पुष्टि करने में मदद मिलती है. हर टेंप्लेट के लिए जांच का एक सेट बनाया जा सकता है, जिसे आपके टैग को डिप्लॉय किए बिना चलाया जा सकता है. इससे, डेवलपमेंट के दौरान अपने टेंप्लेट के व्यवहार की लगातार जांच की जा सकती है. हर जांच में, सैंपल इनपुट वैल्यू, मॉक फ़ंक्शन कॉल, और कोड व्यवहार की जानकारी दी जा सकती है.

सीमाएं

  • यूनिट की जांच करने से, पुष्टि के नियमों की जांच नहीं होती. हालांकि, रन कोड बटन का इस्तेमाल करके, मैन्युअल तौर पर पुष्टि की जांच की जा सकती है.
  • इकाई की जांच में मॉक एपीआई की अनुमति नहीं होती है.

इस गाइड में, कस्टम टेंप्लेट के लिए यूनिट टेस्ट लिखने का तरीका बताया गया है. इस उदाहरण में एक वैरिएबल टेंप्लेट बनाया गया है, जो इनपुट स्ट्रिंग लेकर उस स्ट्रिंग का अपरकेस वर्शन दिखाता है.

  1. नया वैरिएबल टेंप्लेट बनाएं. बाएं नेविगेशन में टेम्प्लेट पर क्लिक करें और वैरिएबल टेम्प्लेट सेक्शन में नया पर क्लिक करें.

  2. फ़ील्ड पर क्लिक करें.

  3. फ़ील्ड जोड़ें पर क्लिक करें और टेक्स्ट इनपुट चुनें. फ़ील्ड text1 को नाम दें और डिसप्ले नाम को "टेक्स्ट 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 एपीआई का इस्तेमाल, कोड टैब में टेंप्लेट कोड को चलाने के लिए किया जाता है. runCode का आर्ग्युमेंट एक ऐसा ऑब्जेक्ट है जिसका इस्तेमाल ग्लोबल डेटा के रूप में किया जाता है. assertThat API से, कोई ऐसी चीज़ मिलती है जिसका इस्तेमाल किसी विषय की वैल्यू के बारे में आसानी से दावा करने के लिए किया जा सकता है.

  8. टेस्ट करने के लिए, ▶ रन टेस्ट पर क्लिक करें. टेस्ट का आउटपुट, Console में दिखेगा.

    ▶ जांच चलाएं बटन, टेंप्लेट में दिखाए गए क्रम में सभी चालू टेस्ट चलाता है. क्रम बदलने के लिए, 'खींचें और छोड़ें' आइकॉन (⠿) का इस्तेमाल करें. जांच नाम के बाईं ओर मौजूद सर्कल पर क्लिक करके, जांच को कुछ समय के लिए चालू या बंद किया जा सकता है. एक टेस्ट चलाने के लिए, माउस को टेस्ट पर ले जाने पर दिखने वाले ▶ बटन पर क्लिक करें.

    कंसोल को ऐसे टेस्ट की कुल संख्या और जांच में सफल न होने की संख्या को प्रिंट करना चाहिए. इस मामले में, सिर्फ़ एक टेस्ट चलाया गया और यह पास हो जाना चाहिए.

  9. दूसरा टेस्ट जोड़ने के लिए, टेस्ट जोड़ें पर फिर से क्लिक करें. टेस्ट का नाम "बिना शीर्षक वाला टेस्ट 2" से बदलकर "हैंडल की जानकारी नहीं की गई" करें.

  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. जांच के सभी मामलों को फिर से चलाने के लिए, ▶ टेस्ट चलाएं पर क्लिक करें. इस बार Handles undefined टेस्ट पास होना चाहिए.

  15. सेव करें पर क्लिक करें और टेंप्लेट एडिटर को बंद करें.