loading

Testando intents de câmera e galeria com Espresso

Quando você tem telas em seu aplicativo Android com recursos de câmera e/ou galeria com algumas alterações de tela (visualizações, rótulos ou botões que aparecem/desaparecem, etc.) de ajudantes que tenho usado e quero compartilhar com todos vocês. Conceder permissõesQuando você está usando a Câmera em seu aplicativo, você precisa conceder algumas permissões no dispositivo para ler/armazenar uma foto. Essas permissões são solicitadas em tempo de execução e geralmente estão relacionadas a READ_EXTERNAL_STORAGE e WRITE_EXTERNAL_STORAGE.

Testando intents de câmera e galeria com Espresso 1

Assim, a GrantPermissionRule permite a concessão de permissões de tempo de execução no Android M (API 23) e superior e, quando aplicada a uma classe de teste, esta regra tenta conceder todas as permissões de tempo de execução solicitadas.@get:Rulevar mRuntimePermissionRule = GrantPermissionRule.grant(android.

Manifest.permission.WRITE_EXTERNAL_STORAGE) Esta regra geralmente é usada para conceder permissões de tempo de execução para evitar que a caixa de diálogo de permissão apareça e bloqueie a interface do aplicativo, e de acordo com a documentação oficial: De acordo com esta regra, concederá automaticamente READ_EXTERNAL_STORAGE quando WRITE_EXTERNAL_STORAGE for solicitadoGallery TestThe code to teste quando um ícone de galeria é clicado no aplicativo, então uma imagem é escolhida e mostrada na tela: A primeira coisa aqui é que eu tenho um método auxiliar (CameraAndGallery.

savePickedImage) que primeiro salva uma imagem (para resumir o ícone ic_launcher) que será usada no teste como um arquivo local visível para o teste: O parâmetro activity vem da ActivityTestRule:@get:Rulevar mActivityTestRule = IntentsTestRule(MyActivity: :class.java)Então eu crio um objeto ActivityResult (como um mock, mas para Android Intent) que será usado pelo matcher Espresso Intents (para corresponder e validar os intents de saída):val imgGalleryResult = CameraAndGallery.createImageGallerySetResultStub(mActivityTestRule.

activity) intenting(hasAction(Intent.ACTION_CHOOSER)).respondWith(imgGalleryResult)O segredo aqui é pedir o arquivo previamente salvo e finalmente usado como resultado.

Testando intents de câmera e galeria com Espresso 2

Observação: para trabalhar com intenções de café expresso, devemos adicionar essa dependência ao build de aplicativos. arquivo gradle: androidTestImplementação androidx.test.

espresso:espresso-intents:$espressoVersionPara o teste que estamos escrevendo, vamos supor que a imagem escolhida da Galeria, estamos configurando-a em um ImageView que é visível para o usuário, então a parte final do teste é verificar se o imagem é exibida (método hasImageSet()):onView(withId(R.id.auctionphotos_bigimage_viewer)).

check(matches(hasImageSet()))Camera TestSimilar ao Gallery Test, o teste para obter uma imagem do dispositivo Camera segue quase os mesmos passos, mas neste caso uma imagem não precisa ser salva antes, apenas simula o resultado de the camera:O resultado da captura simulada da seguinte forma:A imagem resultante será tirada pela intent:intending(hasAction(MediaStore. ACTION_IMAGE_CAPTURE)). respondWith(imgCaptureResult)E com isso podemos verificar se a imagem foi tirada e exibida:onView(withId(R.

id.auctionphotos_bigimage_viewer)).check(matches(hasImageSet()))Finalmente, se você quiser explorar um pouco mais de conteúdo sobre testes e intenções do Espresso, dê uma olhada neste repositório da equipe oficial do Android

Entre em contato conosco
Artigos recomendados
Casos
Introdução ao sistema de estacionamento inteligenteSistema de estacionamento inteligente é um dispositivo elétrico que fornece informações legíveis para ajudar as pessoas a navegar
Gestão de estacionamentosA definição de gestão de estacionamentos é a prática de gerenciar estacionamentos e suas áreas para atingir o objetivo de
Como usar o sistema de estacionamento anpr? O sistema de estacionamento tornou-se uma maneira popular de manter seu negócio funcionando sem problemas. O bom do sistema de estacionamento é que ele pode
Porquê soluções de estacionamento anpr? Quando estaciona o seu automóvel nas soluções de estacionamento anpr, normalmente está a tirar partido das muitas vantagens das soluções de estacionamento anpr. É
O que são os sistemas de estacionamento anpr?Os sistemas de estacionamento Anpr são projetados para tornar mais fácil para as pessoas estacionarem seus carros na cidade. O sistema usa sensores para medir o di
O que é o estacionamento do empilhador de carros? Estou preso no trânsito. Eu tenho que estacionar meu carro aqui e ali. Há tantos lugares para estacionar meu carro. O que você faz? Você apenas estaciona
Como funciona o sistema automatizado de gerenciamento de estacionamentoExistem muitas coisas que você pode fazer para melhorar a qualidade de sua vida. E quando você tiver feito tudo o que você
Introdução à máquina de bilhetes de estacionamentoÉ difícil dar uma descrição clara da mesma. Muita gente usa o mesmo formato, o que facilita o entendimento
O que é o estacionamento de empilhadeiras?Tenho que usar meu smartphone ao usar a internet. Ao usar a internet, é fácil se distrair com as coisas que acontecem ao meu redor
A introdução do sistema de gerenciamento de estacionamento inteligenteSistema de gerenciamento de estacionamento inteligente é uma maneira inteligente de reduzir suas contas de energia e ajudá-lo a manter seu carro funcionando
sem dados
Shenzhen Tiger Wong Technology Co., Ltd é o fornecedor líder de soluções de controle de acesso para sistema de estacionamento inteligente de veículos, sistema de reconhecimento de placas, catraca de controle de acesso de pedestres, terminais de reconhecimento facial e Soluções de estacionamento LPR .
sem dados
CONTACT US

Tecnologia Co. de Shenzhen TigerWong, Ltd

Tel:86 13717037584

O email: info@sztigerwong.com

Adicionar: 1º Andar, Edifício A2, Silicon Valley Power Digital Industrial Park, No. Estrada Dafu 22, Rua Guanlan, Distrito de Longhua,

Shenzhen, província de Guangdong, China  

                    

Direitos autorais©Tecnologia TigerWong Shenzhen 2021 Co.,Ltd  | Mapa do site
Contact us
skype
whatsapp
messenger
contact customer service
Contact us
skype
whatsapp
messenger
cancelar
Customer service
detect