Test

I test delle unità per i modelli personalizzati di Google Tag Manager ti consentono di convalidare la funzionalità dei tuoi modelli. Puoi creare un set di test per ogni modello che possa essere eseguito senza dover implementare il tag, così da poter testare il comportamento del modello in modo continuativo durante lo sviluppo. Ogni test può fornire valori di input di esempio, chiamate a funzioni fittizie e l'asserzione del comportamento del codice.

Limitazioni

  • I test delle unità non controllano le regole di convalida, ma puoi controllarla manualmente utilizzando il pulsante Esegui codice.
  • I controlli delle autorizzazioni non vengono eseguiti sulle API fittizie nei test delle unità.

Questa guida illustra come scrivere i test delle unità per il tuo modello personalizzato. Questo esempio crea un modello di variabile che accetta una stringa di input e restituisce la versione in maiuscolo di quella stringa.

  1. Crea un nuovo modello di variabile. Fai clic su Modelli nel riquadro di navigazione a sinistra, quindi fai clic su Nuovo nella sezione Modelli di variabile.

  2. Fai clic su Campi.

  3. Fai clic su Aggiungi campo e seleziona Input di testo. Assegna un nome al campo text1 e imposta il nome visualizzato su "Text 1".

  4. Nella scheda Codice, sostituisci il codice predefinito con questo JavaScript con sandbox:

    let input = data.text1;
    return input.toUpperCase();
    
  5. Fai clic su Test per aprire la scheda Test.

  6. Fai clic su Aggiungi test e modifica il nome del test da "Test senza titolo 1" a "Gestisci le stringhe".

  7. Fai clic sull'icona Espandi () per visualizzare l'editor JavaScript con sandbox del test. Sostituisci il codice con questo JavaScript con 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');
    

    Questo test trasmette la stringa 'this is a test' alla variabile e verifica che restituisca il valore previsto di 'THIS IS A TEST'. L'API runCode viene utilizzata per eseguire il codice modello nella scheda Codice. L'argomento runCode è un oggetto utilizzato come dati globali. L'API assertThat restituisce un oggetto che può essere utilizzato per formulare fluentemente asserzioni sul valore di un soggetto.

  8. Fai clic su ▶ Esegui test per eseguire il test. L'output del test verrà visualizzato nella console.

    Il pulsante ▶ Esegui test esegue tutti i test attivati nel modello, nell'ordine mostrato. Per modificare l'ordine, utilizza l'icona di trascinamento (⠿). Puoi attivare o disattivare temporaneamente un test facendo clic sul cerchio a sinistra del nome. Per eseguire un singolo test, fai clic sul pulsante ▶ che viene visualizzato quando passi il mouse sopra il test.

    La Console dovrebbe stampare il numero totale di test eseguiti e il numero di test non superati, se presenti. In questo caso, è stato eseguito un solo test che dovrebbe essere superato.

  9. Fai di nuovo clic su Aggiungi test per aggiungere un secondo test. Modifica il nome del test da "Test senza titolo 2" a "Gestisci undefined".

  10. Fai clic sul test per espanderlo e visualizzare l'editor JavaScript con sandbox. Inserisci JavaScript con sandbox nell'editor:

    let variableResult = runCode({});
    assertThat(variableResult).isEqualTo(undefined);
    
  11. Fai clic su ▶ Esegui test per eseguire tutti i test contemporaneamente. L'output del test verrà visualizzato nella console.

    Il test Mani non definiti non dovrebbe andare a buon fine. Complimenti, hai trovato un bug.

  12. Fai clic su Codice per tornare indietro e modificare il codice JavaScript con sandbox del modello. Aggiorna il codice JavaScript con sandbox come segue:

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

    Il codice aggiornato segue la best practice per la convalida della variabile input prima dell'utilizzo.

  13. Fai clic su Test per tornare all'elenco degli scenari di test.

  14. Fai clic su ▶ Esegui test per eseguire nuovamente tutti gli scenari di test. Questa volta il test Handles undefined dovrebbe superare il test.

  15. Fai clic su Salva e chiudi l'Editor modelli.