تست ها

آزمایش‌های واحد برای الگوهای سفارشی Google Tag Manager به شما کمک می‌کند تا عملکرد الگوهای خود را تأیید کنید. شما می توانید مجموعه ای از تست ها را برای هر قالب ایجاد کنید که می تواند بدون نیاز به استقرار برچسب شما اجرا شود، که به شما امکان می دهد به طور مداوم رفتار قالب خود را در طول توسعه آزمایش کنید. هر آزمون می تواند مقادیر ورودی نمونه، فراخوانی تابع ساختگی و رفتار کد را ارائه دهد.

محدودیت ها

  • تست‌های واحد قوانین اعتبارسنجی را بررسی نمی‌کنند، اما می‌توانید با استفاده از دکمه Run Code اعتبارسنجی را به صورت دستی بررسی کنید.
  • بررسی مجوزها در APIهای مسخره شده در تست های واحد انجام نمی شود.

این راهنما شما را با نحوه نوشتن تست های واحد برای الگوی سفارشی خود آشنا می کند. این مثال یک الگوی متغیر ایجاد می کند که یک رشته ورودی را می گیرد و نسخه بزرگ آن رشته را برمی گرداند.

  1. یک قالب متغیر جدید ایجاد کنید. روی Templates در ناوبری سمت چپ کلیک کنید و در قسمت Variable Templates روی New کلیک کنید.

  2. روی فیلدها کلیک کنید.

  3. روی افزودن فیلد کلیک کنید و ورودی متن را انتخاب کنید. نام فیلد را text1 بگذارید و نام نمایشی را روی "Text 1" تنظیم کنید.

  4. در تب Code ، کد پیش‌فرض را با این جاوا اسکریپت sandbox شده جایگزین کنید:

    let input = data.text1;
    return input.toUpperCase();
    
  5. روی Tests کلیک کنید تا تب تست باز شود.

  6. روی افزودن تست کلیک کنید و نام آزمون را از «تست بدون عنوان 1» به «رشته‌های دسته‌دار» تغییر دهید.

  7. روی نماد گسترش ( ) کلیک کنید تا ویرایشگر جاوا اسکریپت جعبه شنی تست نمایان شود. کد را با این جاوا اسکریپت sandbox شده جایگزین کنید:

    // 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 یک شی را برمی‌گرداند که می‌توان از آن برای اظهارنظرهای روان در مورد مقدار موضوع استفاده کرد.

  8. برای اجرای تست روی Run Tests کلیک کنید. خروجی تست در کنسول ظاهر می شود.

    دکمه ▶ Run Tests تمام تست های فعال شده در الگو را به ترتیب نشان داده شده اجرا می کند. برای تغییر ترتیب، از نماد کشیدن (⠿) استفاده کنید. با کلیک بر روی دایره سمت چپ نام آزمون می توان به طور موقت یک آزمایش را فعال یا غیرفعال کرد. برای اجرای یک تست، روی دکمه ▶ که هنگام حرکت ماوس روی تست ظاهر می شود، کلیک کنید.

    کنسول باید تعداد کل تست‌های اجرا شده و تعداد تست‌هایی که شکست خورده‌اند را چاپ کند. در این حالت فقط یک تست اجرا شد و باید قبول شود.

  9. برای افزودن تست دوم دوباره روی Add Test کلیک کنید. نام آزمون را از "تست بدون عنوان 2" به "دسته ها تعریف نشده" تغییر دهید.

  10. روی تست کلیک کنید تا آن را گسترش دهید و ویرایشگر جاوا اسکریپت جعبه شنی را نشان دهید. جاوا اسکریپت sandboxed را در ویرایشگر وارد کنید:

    let variableResult = runCode({});
    assertThat(variableResult).isEqualTo(undefined);
    
  11. روی ▶ Run Tests کلیک کنید تا همه تست ها به طور همزمان اجرا شوند. خروجی تست در کنسول ظاهر می شود.

    تست Undefined Handles باید با شکست مواجه شود. تبریک می گویم، شما یک اشکال پیدا کردید!

  12. روی کد کلیک کنید تا به عقب برگردید و کد جاوا اسکریپت جعبه شنی قالب را ویرایش کنید. جاوا اسکریپت سندباکس را به صورت زیر به روز کنید:

    const getType = require('getType');
    
    let input = data.text1;
    if (getType(input) !== 'string') {
      return input;
    }
    return input.toUpperCase();
    

    کد به روز شده از بهترین روش اعتبارسنجی متغیر input قبل از استفاده از آن پیروی می کند.

  13. برای بازگشت به لیست موارد آزمایش، روی Tests کلیک کنید.

  14. روی ▶ Run Tests کلیک کنید تا همه موارد تست دوباره اجرا شوند. این بار آزمون Undefined Handles باید قبول شود.

  15. روی ذخیره کلیک کنید و ویرایشگر الگو را ببندید.