Ao criar uma interface de usuário com SwiftUI, a ideia é construir um modelo de visualização que possa ser mapeado facilmente para os elementos da IU. Nesses casos, a maioria dos testes pode ser feita no modelo, usando frameworks de teste de unidade padrão, o que torna esses testes fáceis de escrever e rápidos de executar. Para testar as ligações entre o modelo e as visualizações, as pessoas desenvolvedoras geralmente usam XCUITest, um framework de automação de teste que inicia o aplicativo completo e controla remotamente a interface. Funciona e os testes são razoavelmente estáveis, mas demoram muito para serem executados.
Para uma abordagem mais rápida para escrever testes de unidade para SwiftUI, tente ViewInspector, um framework de código aberto que usa a API de reflexão pública do Swift para acessar as visualizações subjacentes criadas por SwiftUI. Com o ViewInspector, um teste simplesmente instancia uma visualização SwiftUI, localiza os elementos da interface que precisam ser testados e, em seguida, faz afirmações contra esses elementos. As interações básicas, como taps, também podem ser testadas. Como muitos frameworks de teste de IU, fornece uma API para localizar elementos de interface, seja especificando um caminho por meio da hierarquia de visualização ou usando um conjunto de métodos localizadores. Esses testes são geralmente mais simples do que os XCUITests e são executados com muito mais rapidez. Como uma palavra de cautela, no entanto, dada a facilidade com que os testes podem ser escritos usando ViewInspector, você pode acabar tendo que lidar com a tentação de testar demais a interface. Testar mapeamentos um-para-um simples é apenas um registro de partidas dobradas. E embora o ViewInspector torne mais fácil testar o código SwiftUI, lembre-se de manter a maior parte da lógica no modelo.