loading

TGW é profissional em design e solução para sistema de gerenciamento de estacionamento

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
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