Testes de inspeção de DOM estão sujeitos a alterações

O conteúdo e a estrutura de HTML, CSS e o DOM no Lightning Experience podem mudar a qualquer momento e não podem ser considerados uma API estável. Testes de IU que alcançam componentes internos usando ferramentas, como Selenium WebDriver, exigem manutenção contínua. Essa não é uma mudança na Spring '19, uma vez que nunca garantimos HTML, CSS e DOM compatíveis com versões anteriores. Estamos destacando a fragilidade desses testes novamente devido a alterações nesta versão conforme o Lightning Experience continua a evoluir com padrões da Web modernos. Entendemos o valor que nossos clientes obtêm com teste de IU automatizado, e o fardo de manutenção que isso impõe a eles.

Onde: Essa nota de versão se aplica ao Lightning Experience e ao Salesforce Classic.

Por quê: Partes do Lightning Experience usam os componentes da Web do Lightning, que são baseados no padrão de Componentes da Web. Esse padrão inclui Shadow DOM, que oculta a marcação, estilo e comportamento de um componente de outros componentes. Esse encapsulamento apresenta desafios para testes de UI, especialmente testes que dependem de pesquisar globalmente o DOM ou chegar nos itens internos de elementos personalizados.

Como: Na versão Spring '19, fizemos alterações significativas para introduzir uma propriedade shadowRoot que encapsule a subárvore de DOM de um elemento. Esse shadowRoot é representado como um DocumentFragment no DOM e elementos dentro dessa subárvore de DOM não estão disponíveis por meio de métodos de consulta de DOM tradicionais. Elementos renderizados pelos componentes da Web do Lightning contêm essa nova propriedade shadowRoot, e esses elementos ficam ocultos de consultas DOM normais.

Recomendamos usar ferramentas de teste de unidade para testar componentes Aura individuais e componentes da Web do Lightning e usar apenas ferramentas de teste de IU para teste de ponta a ponta.

Para componentes Aura, use o Serviço de teste do Lightning para gravar testes de unidade para garantir que o desempenho de seus componentes seja o esperado. O Serviço de teste do Lightning dá suporte a teste com estruturas de teste JavaScript padrão. Fornece wrappers fáceis de usar para uso do Jasmine e do Mocha.

Para componentes da Web do Lightning use lwc-jest para gravar testes de unidade.

Para testes de IU de ponta a ponta, você precisa adaptar seus testes existentes para uso do Shadow DOM. A maneira de fazer isso varia por ferramenta e está evoluindo rapidamente. No momento, este artigo é um bom exemplo para o Selenium WebDriver.