Testes

Os testes de unidade para modelos personalizados do Gerenciador de tags do Google ajudam a validar a funcionalidade dos seus modelos. Você pode criar um conjunto de testes para cada modelo, que podem ser executados sem a necessidade de implantar a tag. Assim, é possível testar continuamente o comportamento do modelo durante o desenvolvimento. Cada teste pode fornecer valores de entrada de amostra, simular chamadas de funções e declarar o comportamento do código.

Limitações

  • Os testes de unidade não verificam as regras de validação, mas você pode fazer isso manualmente usando o botão Executar código.
  • Verificações de permissão não acontecem em APIs simuladas em testes de unidade.

Este guia mostra como criar testes de unidade para seu modelo personalizado. No exemplo, você vai conferir a criação de um modelo de variável que usa uma string de entrada para retornar uma versão dela em letras maiúsculas.

  1. Crie um novo modelo de variável. Clique em Modelos na navegação à esquerda e clique em Novo na seção Modelos de variável.

  2. Clique em Campos.

  3. Clique em Adicionar campo e selecione Entrada de texto. Nomeie o campo como text1 e defina o nome de exibição como "Text 1".

  4. Na guia Código, substitua o código padrão por este JavaScript no modo sandbox:

    let input = data.text1;
    return input.toUpperCase();
    
  5. Clique em Testes para abrir a guia de testes.

  6. Clique em Adicionar teste e mude o nome do teste, de Teste sem título 1 para Usa strings.

  7. Clique no ícone de expansão () para ver o editor do JavaScript no modo sandbox do teste. Substitua o código por este JavaScript no modo 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');
    

    Esse teste transmite a string 'this is a test' para a variável e verifica se ela retorna o valor esperado de 'THIS IS A TEST'. A API runCode é usada para executar o código do modelo na guia Código. O argumento para runCode é um objeto utilizado como dado global. A API assertThat retorna um objeto que pode ser usado para fazer declarações de forma fluente sobre o valor de um assunto.

  8. Clique em ▶ Executar testes. O resultado será exibido no console.

    Com o botão ▶ Executar testes, todos aqueles que estiverem ativos no modelo serão executados na ordem ilustrada. É possível alterar essa ordem reposicionando os itens pelo ícone de arrastar (⠿). Para ativar ou desativar um teste temporariamente, clique no círculo à esquerda do nome dele. Para executar um único teste, clique no botão ▶ que aparece quando você passa o mouse sobre cada item.

    O console imprimirá o número total de testes executados e que falharam, se houver. Nesse caso, apenas um foi executado e aprovado.

  9. Clique novamente em Adicionar teste para incluir outro teste. Altere o nome de "Untitled test 2" para "Handles undefined".

  10. Clique no teste para expandi-lo e ver o editor do JavaScript no modo sandbox. Insira o JavaScript no modo sandbox no editor:

    let variableResult = runCode({});
    assertThat(variableResult).isEqualTo(undefined);
    
  11. Clique em ▶ Executar testes para executar todos de uma só vez. O resultado será exibido no console.

    O teste Handles undefined falhará. Parabéns, você encontrou um bug.

  12. Clique em Código para voltar e editar o código do JavaScript no modo sandbox do modelo. Para atualizá-lo, faça o seguinte:

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

    O código atualizado segue a prática recomendada de validar a variável input antes de usá-la.

  13. Clique em Testes para voltar à lista de casos de teste.

  14. Clique em ▶ Executar testes para executar todos novamente. Desta vez, o teste Handles undefined será aprovado.

  15. Clique em Salvar e feche o editor de modelos.