Тесты

Модульные тесты для пользовательских шаблонов Диспетчера тегов Google помогают проверить функциональность ваших шаблонов. Вы можете создать набор тестов для каждого шаблона, которые можно запускать без развертывания вашего тега, что позволяет вам постоянно тестировать поведение вашего шаблона во время разработки. Каждый тест может предоставлять образцы входных значений, фиктивные вызовы функций и подтверждение поведения кода.

Ограничения

  • Модульные тесты не проверяют правила проверки, но вы можете вручную проверить проверку с помощью кнопки « Выполнить код» .
  • Проверки разрешений не выполняются для фиктивных API в модульных тестах.

Это руководство расскажет вам, как писать модульные тесты для вашего пользовательского шаблона. В этом примере создается шаблон переменной, который принимает входную строку и возвращает версию этой строки в верхнем регистре.

  1. Создайте новый шаблон переменной. Нажмите « Шаблоны » в левой панели навигации и нажмите « Создать » в разделе « Шаблоны переменных ».

  2. Нажмите Поля .

  3. Нажмите « Добавить поле» и выберите «Ввод текста» . Назовите поле text1 и установите отображаемое имя на «Text 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' . API runCode используется для запуска кода шаблона на вкладке « Код ». Аргументом runCode является объект, который используется в качестве глобальных данных. API assertThat возвращает объект, который можно использовать для плавного утверждения значения субъекта.

  8. Нажмите ▶ Запустить тесты , чтобы запустить тест. Результат теста появится в консоли.

    Кнопка ▶ Запустить тесты запускает все включенные тесты в шаблоне в указанном порядке. Чтобы изменить порядок, используйте значок перетаскивания (⠿). Тест можно временно включить или отключить, щелкнув кружок слева от названия теста. Чтобы запустить один тест, нажмите кнопку ▶, которая появляется при наведении указателя мыши на тест.

    Консоль должна вывести общее количество выполненных тестов и количество неудачных тестов, если таковые имеются. В данном случае был запущен только один тест, и он должен пройти.

  9. Нажмите « Добавить тест» еще раз, чтобы добавить второй тест. Измените название теста с «Безымянный тест 2» на «Обрабатывает неопределенное» .

  10. Нажмите на тест, чтобы развернуть его и открыть изолированный редактор JavaScript. Введите изолированный JavaScript в редакторе:

    let variableResult = runCode({});
    assertThat(variableResult).isEqualTo(undefined);
    
  11. Нажмите ▶ Запустить тесты , чтобы запустить все тесты одновременно. Результат теста появится в консоли.

    Тест Handles undefined должен завершиться неудачно. Поздравляем, вы нашли ошибку!

  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. Нажмите « Сохранить » и закройте редактор шаблонов.