Tests

Les tests unitaires pour les modèles personnalisés Google Tag Manager vous aident à valider le fonctionnement de vos modèles. Vous pouvez créer un ensemble de tests pour chaque modèle. Vous pouvez exécuter ce modèle sans déployer votre tag, ce qui vous permet de tester le comportement de votre modèle en continu pendant son développement. Chaque test peut fournir des exemples de valeurs d'entrée, simuler des appels de fonction et valider le comportement du code.

Limites

  • Les tests unitaires ne vérifient pas les règles de validation, mais vous pouvez vérifier manuellement la validation à l'aide du bouton Exécuter le code.
  • Les API ne sont pas vérifiées lors des tests unitaires.

Ce guide vous explique comment écrire des tests unitaires pour votre modèle personnalisé. Cet exemple crée un modèle de variable qui prend une chaîne d'entrée et renvoie la version majuscule de cette chaîne.

  1. Créez un modèle de variable. Cliquez sur Modèles dans le panneau de navigation de gauche, puis cliquez sur Nouveau dans la section Modèles de variable.

  2. Cliquez sur Champs.

  3. Cliquez sur Ajouter un champ, puis sélectionnez Saisie de texte. Nommez le champ text1 et définissez le nom à afficher sur Texte 1.

  4. Dans l'onglet Code, remplacez le code par défaut par ce code JavaScript de bac à sable:

    let input = data.text1;
    return input.toUpperCase();
    
  5. Cliquez sur Tests pour ouvrir l'onglet "Tests".

  6. Cliquez sur Ajouter un test et remplacez le nom Test sans titre 1 par Gestion des chaînes.

  7. Cliquez sur l'icône Développer () pour afficher l'éditeur JavaScript de bac à sable du test. Remplacez le code par le code JavaScript de bac à sable suivant:

    // 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');
    

    Ce test transmet la chaîne 'this is a test' à la variable et vérifie qu'elle renvoie la valeur attendue 'THIS IS A TEST'. L'API runCode permet d'exécuter le code du modèle dans l'onglet Code. L'argument de runCode est un objet utilisé comme données globales. L'API assertThat renvoie un objet pouvant être utilisé couramment pour faire des assertions sur la valeur d'un sujet.

  8. Cliquez sur ▶ Exécuter les tests pour lancer le test. Le résultat du test s'affiche dans la console.

    Le bouton ▶ Exécuter les tests permet d'exécuter tous les tests activés dans le modèle, dans l'ordre indiqué. Pour modifier l'ordre, utilisez l'icône de déplacement (⠿). Vous pouvez activer ou désactiver temporairement un test en cliquant sur le cercle à gauche du nom du test. Pour exécuter un seul test, cliquez sur le bouton ▶ qui s'affiche lorsque vous passez la souris sur le test.

    La console doit afficher le nombre total de tests exécutés et le nombre de tests ayant échoué, le cas échéant. Dans ce cas, un seul test a été exécuté et doit réussir.

  9. Cliquez à nouveau sur Ajouter un test pour ajouter un deuxième test. Remplacez le nom Test sans titre 2 par Manettes non définies.

  10. Cliquez sur le test pour le développer et afficher l'éditeur JavaScript de bac à sable. Saisissez le code JavaScript de bac à sable dans l'éditeur:

    let variableResult = runCode({});
    assertThat(variableResult).isEqualTo(undefined);
    
  11. Cliquez sur ▶ Exécuter les tests pour exécuter tous les tests simultanément. Le résultat du test s'affiche dans la console.

    Le test Handles undefined (ID non défini) doit échouer. Félicitations, vous avez trouvé un bug !

  12. Cliquez sur Code pour revenir en arrière et modifier le code JavaScript de bac à sable du modèle. Mettez à jour le code JavaScript de bac à sable comme suit:

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

    Le code mis à jour suit les bonnes pratiques pour valider la variable input avant de l'utiliser.

  13. Cliquez sur Tests pour revenir à la liste des scénarios de test.

  14. Cliquez sur ▶ Exécuter les tests pour relancer tous les scénarios de test. Cette fois, le test Handles non défini doit réussir.

  15. Cliquez sur Enregistrer, puis fermez l'éditeur de modèles.