Test

I test delle unità per i modelli personalizzati di Google Tag Manager consentono di convalidare la funzionalità dei modelli. Puoi creare una serie di test per ogni modello che possono essere eseguiti senza dover implementare il tag, consentendoti testare continuamente il comportamento del modello durante lo sviluppo. Ogni test può fornire valori di input di esempio, chiamate di funzioni fittizie e comportamento dell'asserzione del codice.

Limitazioni

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

Questa guida illustra come scrivere i test delle unità per un modello personalizzato. Questo esempio crea un modello di variabile che prende una stringa di input e restituisce la versione maiuscola della stringa.

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

  2. Fai clic su Campi.

  3. Fai clic su Aggiungi campo e seleziona Inserimento testo. Assegna al campo il nome text1 e imposta il nome visualizzato su "Testo 1".

  4. Nella scheda Codice, sostituisci il codice predefinito con questo codice 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 cambia il nome del test da "Untitled test 1" a "Handles extensions".

  7. Fai clic sull'icona di espansione () per visualizzare l'editor JavaScript con sandbox del test. Sostituisci il codice con questo codice 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 passa la stringa 'this is a test' alla variabile e verifica che quest'ultima restituisca il valore previsto di 'THIS IS A TEST'. L'API runCode viene utilizzata per eseguire il codice del modello nella scheda Codice. L'argomento per runCode è un oggetto utilizzato come dati globali. L'API assertThat restituisce un oggetto che può essere utilizzato per effettuare rapidamente le asserzioni relative al 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 consente di eseguire tutti i test attivati nel modello, nell'ordine mostrato. Per modificare l'ordine, utilizza l'icona di trascinamento (⠿). Un test può essere attivato o disattivato temporaneamente facendo clic sul cerchio a sinistra del nome del test. Per eseguire un singolo test, fai clic sul pulsante ▶ che viene visualizzato quando passi il mouse sul test.

    Nella console viene visualizzato il numero totale di test eseguiti ed eventualmente quelli non riusciti. 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. Cambia il nome del test da "Test senza titolo 2" a "Handle non definiti".

  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 degli handle non definiti dovrebbe avere esito negativo. Congratulazioni, hai trovato un bug!

  12. Fai clic su Codice per tornare indietro e modificare il codice JavaScript con sandbox del modello. Aggiorna 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 di convalida della variabile input prima di utilizzarla.

  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 Handle non definiti dovrebbe essere superato.

  15. Fai clic su Salva e chiudi l'editor dei modelli.