Participe do evento ⁠#Android11: apresentação de lançamento da versão Beta no dia 3 de junho.

Arquivo de notas da versão de teste

AndroidX Test Espresso 3.1.1, Runner 1.1.1, Rules 1.1.1, Monitor 1.1.1 AndroidTestOrchestrator 1.1.1, Core 1.1.0, Truth 1.1.0, JUnit 1.1.0 (13-12-2018)

Esta é a versão estável do AndroidX Test 1.1.0

  • Core
    • O ActivityScenario agora é compatível com atividades que iniciam outra atividade

AndroidX Test Espresso 3.1.1-beta01, Runner 1.1.1-beta01, Rules 1.1.1-beta01, Monitor 1.1.1-beta01 AndroidTestOrchestrator 1.1.1-beta01, Core 1.1.0-beta01 Truth 1.1.0-beta01, JUnit 1.1.0-beta01 (06-12-2018)

  • Core
    • Novo artefato de extensão core-ktx kotlin. Inclui uma API ActivityScenario.launchActivity compatível com kotlin.
    • Nova API ActivityScenario para iniciar atividades com intents personalizadas.
    • Nova API ActivityScenario para receber um resultado de atividade.
    • Agora, o ActivityScenario pode ser fechado.
  • Espresso
    • Mudança de withResourceNameMatcher e HumanReadables para serem compatíveis com a API 28.
    • Atualização da descrição de ReplaceTextAction para incluir o stringToBeSet
    • Adição de compatibilidade com o Espresso no modo de looper pausado do Robolectric.
  • JUnit
    • Nova API ActivityScenarioRule para iniciar e fechar automaticamente uma Activity na configuração e desmontagem de teste.
    • Novo artefato de extensão junit-ktx do kotlin. Inclui uma API ActivityScenarioRule compatível com Kotlin.
  • Runner
    • Agora, pacotes -e e testFile -e têm comportamento consistente ao receber pacotes.
  • Truth
    • Adição de APIs bool, parcelable e parcelableAsType BundleSubject.

AndroidX Test Espresso 3.1.0, Runner 1.1.0, Rules 1.1.0, Monitor 1.1.0 AndroidTestOrchestrator 1.1.0, Core 1.0.0 Truth 1.0.0, JUnit 1.0.0 (24-10-2018)

  • Todos
    • Definição de minSdkVersion para 14 e targetSdkVersion para 28.
  • Espresso
    • Correção de withContentDescription para funcionar com tipos não-string.
    • Adição de compatibilidade para uso do Espresso no Robolectric.
    • Problema 72798625 (link em inglês): o ViewMatchers.withText do Espresso não funciona quando textAllCaps está ativado
    • Adição de compatibilidade para injetar uma sequência de eventos de movimento.
  • Intents
    • Adição da API beta para recuperar a lista de intents. Destinado a uso com novas declarações de verdade.
  • Runner
    • Adição de compatibilidade com apps instantâneos.
    • Suspensão do uso de androidx.test.runner.AndroidJUnit4 e substituição por androidx.test.ext.junit.runners.AndroidJUnit4
  • Monitor
    • Suspensão do uso de androidx.test.InstrumentationRegistry e substitua por androidx.test.platform.app.InstrumentationRegistry and androidx.test.core.app.ApplicationProvider
  • AndroidTestOrchestrator
    • Ativação do gerenciamento da cobertura do "Orchestrator" apenas se os argumentos "coverage" e "coverageFilePath" forem transmitidos.
    • Adição de espera para o depurador apenas quando -debug for definido, mas não para listar casos de teste de ATO. Uma nova sinalização orquestradorDebug foi adicionada para depurar o próprio "Orchestrator".
  • Core
    • Novo artefato. Inclui novas APIs compatíveis com testes locais e no dispositivo para:
      • Recuperar contexto: ApplicationProvider
      • Controlar ciclos de vida de atividades: ActivityScenario (Beta)
      • Builders para MotionEvent, PackageInfo
      • Classe de utilitário Parceables
  • Truth
    • Novo artefato. Inclui assuntos de verdade personalizados para Notification, Intent, Bundle, Parcelable e MotionEvent.
  • JUnit
    • Novo artefato. Inclui classe runner JUnit androidx.test.ext.junit.runners.AndroidJUnit4 compatível com testes locais e no dispositivo.

Espresso 3.0.2-beta1, Runner 1.0.2-beta1, Rules 1.0.2-beta1, Monitor 1.0.2-beta1, AndroidTestOrchestrator 1.0.2-beta1 (16-04-2018)

  • Espresso
    • Mudanças importantes na API:
      • Fomos informados no problema 64062890 (link em inglês) que estávamos usando o Guava Optional na API pública. Foi um descuido terrível da nossa parte. Sendo assim, há uma mudança de API pública importante nesta versão para solucionar esse problema. Acrescentamos um wrapper feio em torno da classe Guava Optional, chamado de EspressoOptional. Ele pode ser encontrado no namespace "android.support.test.espresso.util". Os desenvolvedores que estavam usando a API Guava Optional com vazamento precisam alterar as importações e referências para usar o EspressoOptional durante a atualização para essa nova versão. Lamentamos pela inconveniência que isso possa causar.
    • As APIs onView() e onData() agora estão marcadas como @CheckReturnValue para evitar erros.
    • O arquivo POM do espresso-core foi corrigido para não extrair a dependência "rules", que passa a ser extraída pelo POM do espresso-intents. Essa mudança deve ser NoOp para desenvolvedores, uma vez que espresso-intents não podem ser usados sem o espresso-core.
    • Problema 65486414 (link em inglês): o Espresso não tem a dependência guava.
    • Problema 65576174 (link em inglês): o IdlingResourceRegistry.sync do Espresso causa falha no segundo teste.
    • Problema 65568629 (link em inglês): o Espresso.onIdle não está usando IdlingRegistry.
    • Problema 69333598 (link em inglês): o Espresso 3.0.1 é incompatível com play-services-auth:11.6.0 no módulo da biblioteca do Android.
    • Problema 64062890 (link em inglês): o tipo Internal Optional é exposto pela interface AdapterViewProtocol.
    • Problema 64091847 (link em inglês): o Espresso 3.0.0 NÃO pode depender do executor de teste.
    • Problema 73722050 (link em inglês): o espresso-contrib 3.0.2-alpha1 empacota classes android.arch.{lifecycle/core}.
  • Espresso-remote
    • Esse é um artefato novo. Separamos toda a funcionalidade multiprocesso do Espresso fora do artefato espresso-core. Essa opção é mais limpa e deve reduzir significativamente o tamanho geral e a contagem de métodos do espresso-core.
  • Runner
    • Trunca o rastreamento da pilha se ele for muito grande para uma transação do binder. Como o AJUR precisa relatar falhas para o AM por meio de um IPC binder, é necessário garantir que o limite de transações do Binder, de 1 MB por processo, não seja excedido.
    • Problema 65828576 (link em inglês): falha de TestRequestBuilder ao executar o teste na classe com @Ignore.
    • Problema 37057596 (link em inglês): não gerenciamos falhas em @BeforeClass.
  • Rules
    • É preciso lançar uma referência sobre a atividade em teste depois das mudanças no ciclo de vida. Durante o teste, agora é possível manipular a Activity diretamente, usando a referência recebida em #getActivity(). Agora, se a Activity for concluída e reiniciada, a referência retornada por #getActivity() sempre apontará para a instância atual da Activity.
    • Problema 64389280 (link em inglês): o GrantPermissionRule não fornece WRITE_EXTERNAL_STORAGE.
    • Problema 37065965 (link em inglês): ActivityTestRule vaza atividade depois da mudança de orientação.
    • Problema 75254050 (link em inglês): o ActivityTestRule não atualiza a instância de Activity durante mudanças na configuração.
    • Problema 64464625 (link em inglês): não é possível fazer o trabalho da IU no método finish() da Activity.
  • AndroidTestOrchestrator
    • Transmita sinalizações -e coverage true -e coverageFilePath /sdcard/foo/ para gerar arquivos de cobertura no local especificado (o app precisa de permissão para gravar no local determinado). A convenção de nomenclatura do arquivo de cobertura agora é: com.foo.Class#method1.ec. Observe que ele só é compatível quando executado no modo isolado. Além disso, não é possível usá-lo com a sinalização coverageFile do AndroidJUnitRunner, uma vez que os arquivos de cobertura gerados modificam uns aos outros.
    • Transmita a sinalização -e clearPackageData se quiser que o Orchestrator execute os comandos pm clear context.getPackageName() e pm clear targetContext.getPackageName() entre as invocações de teste. O contexto no comando Clear é o app em contexto de teste.
    • Correção: ao executar um teste vazio, também conhecido como "No @Test", dentro do destino, o resultado é diferente do modo legado.
    • Problema 72758547 (link em inglês): o Test Orchestrator faz com que os dados de cobertura do Jacoco fiquem incompletos, com apenas os dados da última execução do teste.
    • Problema 67916042 (link em inglês): Android Test Orchestrator: a execução foi interrompida na falha de Process devido a OutOfMemory.
    • Problema 77752735 (link em inglês): o Orchestrator falha para TransactionTooLargeException.
    • Problema 77549481 (link em inglês): o Test Orchestrator precisa executar "pm clear" depois de cada teste.

Espresso 3.0.2-alpha1, Runner 1.0.2-alpha1, Rules 1.0.2-alpha1, AndroidTestOrchestrator 1.0.2-alpha1 (05-12-2017)

  • Espresso

    • Intents agora tem uma resposta que pode ser chamada, permitindo que os testes sejam executados depois da captura de um intent acionado, mas antes de retornar um objeto Instrumentation.ActivityResult.
  • Runner

    • Divisão do artefato de monitoramento do Maven com.android.support.test:monitor:<version> para usuários que precisam de MonitoringInstrumentation sem a execução do teste e os recursos do JUnit.

      Se você usar com.android.support.test:runner:<version>, tudo funcionará conforme o esperado, porque o Gradle extrai automaticamente o módulo monitor como uma dependência do módulo runner.

    • Adição da sinalização newRunListenerOrderMode. Quando true, os listeners definidos pelo usuário são executados antes dos listeners padrão. Esperamos que esse comportamento se torne o padrão.

    • Problema 65828576 (link em inglês): TestRequestBuilder falha ao executar testes em uma classe anotada com @Ignore (autônomo sem execução de teste ou recursos do JUnit).

  • AndroidTestOrchestrator

    • Agora gerencia testes vazios da mesma maneira que o AndroidJUnitRunner não orquestrado.
    • Agora, o Orchestrator pode gerenciar uma saída padrão muito grande do AndroidJUnitRunner.

Espresso 3.0.1, Runner 1.0.1, Rules 1.0.1, AndroidTestOrchestrator 1.0.1 (28-08-2017)

  • Espresso

    • Adição de uma opção IdlingPolicy para suprimir onTimeout() quando um depurador de etapa é anexado à VM.
    • Problemas 64024656, 64247586 e 64525881 (links em inglês): não informa falhas relacionadas a problemas no carregamento de classes, a menos que um usuário esteja carregando classes específicas incluindo o argumento do executor da classe -e.
    • Problema 64877246 (link em inglês): adiciona classes ausentes ao arquivo JAR de origens.
  • Runner

    • Simplificação da lógica ShardingFilter.
    • Problema 65025743 (link em inglês): o filtro @RequiresDevice agora é compatível com emuladores FTL.
  • AndroidTestOrchestrator

    • Não duplica relatos de falha. Agora, quando um processo de teste falha depois de um erro, apenas uma falha é informada para o teste.
    • Correção do Javadoc para Orchestrator.
    • Agora, os testes são indicados como perdidos se o processo remoto falha.
    • Agora gerencia casos de teste ignorados.
    • Agora exclui casos de teste ignorados do rodapé para corresponder aos resultados legados.
    • Correção de problemas de permissão de tempo de execução. Agora, os relatórios de teste são gravados no cartão SD no Android 7.0 (API nível 24) e mais recente.

Espresso 3.0.0, Runner 1.0.0, Rules 1.0.0, AndroidTestOrchestrator 1.0.0 (25-07-2017, Anúncio)

Mudanças importantes

  • Todos os artefatos
    • Redução da compatibilidade para níveis de API inferiores ao 15. No entanto, o SDK mínimo ainda aponta para a API nível 9, para que os usuários tenham tempo para fazer upgrade.
  • Espresso
    • A classe obsoleta android.support.test.espresso.contrib.CountingIdlingResource foi excluída e movida para android.support.test.espresso.idling.CountingIdlingResource.
    • Agora, a Guava (link em inglês) foi transferida pela configuração jarjar para outro namespace "interno". Se você estiver usando a API Guava por engano por meio de namespaces Espresso, poderá encontrar falhas.
      • Remova todas as referências à Guava sombreada (.core.deps.guava.).
      • Atualize sua versão da Biblioteca de Suporte para 25.4.0 ou mais recente.

Problemas conhecidos

  • AndroidTestOrchestrator
    • Os argumentos do executor -e numShards e -e shardIndex não são compatíveis no momento.
    • Testes parametrizados não são compatíveis no momento.

Novos recursos

  • Rules
  • AndroidTestOrchestrator
    • O Android Test Orchestrator oferece uma nova maneira de coletar e executar testes, com ênfase em correção e isolamento. O Orchestrator é um processo de instrumentação independente que gera um processo do executor de instrumentação para cada teste e coleta os resultados.
      • Falhas no app interrompem a instrumentação do executor, mas não o Orchestrator, permitindo que o conjunto de testes continue.
      • Exige a instalação do APK do Orchestrator: 'com.android.support.test:orchestrator:1.0.0'.
      • A versão 1.0 tem apenas uma interface de linha de comando. A integração com o Android Studio e o Firebase Test Labs é planejada.

Correções de bugs

  • Espresso
    • Melhoria na sincronização da visualização raiz para reduzir significativamente a inconsistência.
    • Correção da corrupção de IdlingResourceRegistry.
    • Melhoria na sincronização com objetos IdlingResource.
    • Problema 37132680 (link em inglês): o Espresso não espera a conclusão da criação da caixa de diálogo para realizar a próxima ação.
    • Problema 37103280 (link em inglês): o Espresso deve enviar regras de consumo do ProGuard para que o consumidor não precise adicioná-las.
    • Problema 37094726 (link em inglês): o Espresso Intents contém um rótulo de app desnecessário.
    • Problema 37093953 (link em inglês), Espresso: nenhuma verificação disponível para texto de erro nulo/vazio.
    • Problema 37071776 (link em inglês): o espresso-core incorpora arquivos .pom do Guava.
    • Problema 37062612 (link em inglês): NPE em release().
    • Problema 37063389 (link em inglês): o uso do Guava e do espresso-web como dependências androidTest impede a compilação.
    • Problema 37070533 (link em inglês): adição de compatibilidade com NavigationView na Android Design Support Library.
  • Runner
    • Correção da capacidade de usar @UiThreadTest em combinação com @Test(timeout = 123).
    • Correção do argumento de executor -e notClass.
    • Correção de -e log para compatibilidade com conjuntos de testes JUnit3 e JUnit4, bem como os executores Parameterized e Enclosed.
    • Problema 37663530 (link em inglês): aguarda a conclusão de todas as atividades antes e depois de cada método de teste.
    • Problema 37132680 (link em inglês): o Espresso não espera a conclusão da criação da caixa de diálogo para realizar a próxima ação.
    • Problema 37123213 (link em inglês): @RequiresDevice é ignorado na ABI x86_64.
    • Problema 37101485 (link em inglês): alguns argumentos fornecidos pelo manifesto para AndroidJUnitRunner, como tamanho do teste, anotação e depuração, são ignorados.
    • Problema 37082857 (link em inglês): a execução do teste semiparalelo do Espresso falha em objetos estáticos.
    • Problema 37063396 (link em inglês): o contexto não é inicializado com ProviderTestCase2 (ocasiona NullPointerException).

Outras mudanças importantes

  • Os binários agora são publicados por meio do repositório Maven do Google.
  • Redução no tamanho dos arquivos JAR espresso-core e espresso-web: as dependências incorporadas agora têm o ProGuard aplicado.
  • Todos os arquivos .aar agora incluem regras do ProGuard.
  • Adição de arquivos proguard_library.cfg aos artefatos lançados.
  • A interface Tapper tem uma nova versão de sendTap() para implementar.

Contribuições externas

Espresso 2.2.2, Runner/Rules 0.5 (22-02-2016, versão silenciosa)

Novos recursos

  • espresso
    • Problema 194253 (link em inglês): adição de compatibilidade com NavigationView na Android Design Support Library.
    • Adição de verificações para animações e transições ativadas.
    • Nova API ViewMatcher: withResourceName().

Correções de bugs

  • Espresso
    • Problema 195331 (link em inglês): o espresso-core incorpora arquivos POM do Guava.
    • A contagem de recursos ociosos foi movida do espresso-contrib.
  • rules
    • Problema 187249 (link em inglês): NPE em Intents.release().
  • Runner
    • Problema 196066: o argumento -e log true no AndroidJUnitRunner não ignora o teste real.
    • Espera para o depurador em onCreate() do executor.
    • Todas as anotações de teste compatíveis foram movidas da plataforma para o ATSL.
    • Remoção do despejo de rastreamento de pilha não relacionado ao JSBridge.
    • Correção de AndroidAnnotatedBuilder.

Outras mudanças importantes

  • ActivityTestRule, UiThreadTestRule, IntentsTestRule e ServiceTestRule estão fora da versão Beta.
  • Adição de arquivo de configurações de estilo de código para uma formatação uniforme do código.

Espresso 2.2.1, Runner/Rules 0.4 (15-09-2015)

Novos recursos

  • Rules
    • Adição do novo construtor IntentsTestRule para ser totalmente compatível com ActivityTestRule.
  • Runner
    • Adição de instalação multidex de caso especial para APIs nível 15 e anteriores.
    • Adição de filtros de exclusão à classe e ao pacote:
      • Execução de todos os testes, exceto aqueles em uma classe específica: adb shell am instrument -w -e notClass com.android.foo.FooTest
      • Execução de todos os testes, exceto um: adb shell am instrument -w -e notClass com.android.foo.FooTest#testFoo
      • Execução de todos os testes, exceto um pacote específico: adb shell am instrument -w -e notPackage com.android.foo.bar

Contribuições externas

  • Espresso
    • 157911 (link em inglês): adição de correspondência de visualização para inserir tipo em um objeto EditText.
    • 157912 (link em inglês): adição de correspondência de visualização para corresponder ao texto de terro em um objeto EditText.
    • 150674 (link em inglês): adição de compatibilidade com DrawerActions para gavetas com gravidade arbitrária.
    • 150744 (link em inglês): DrawerActions não vazam mais parentListener.
    • 153303 (link em inglês): gravidade especificada nas verificações "is the drawer open or closed".
    • 157910 (link em inglês): adição de fábricas de ação de abrir e fechar DrawerLayout.

Correções de bugs

  • Espresso
    • ViewActions.closeSoftKeyboard() agora garante que o teclado de software desapareça completamente.
    • Correção do problema de sincronização com o método Espresso.pressBack() do Espresso na API de nível 21 ou mais recente.
    • Correção da sincronização para animações de fechamento do teclado na API nível 23.
  • Rules
    • Correção de ServiceTestRule na API de nível 23, startService() precisa ser sempre chamado com uma Intent explícita.
  • Runner
    • Correção de compatibilidade interrompida com o JaCoCo do Gradle.
    • Correção de compatibilidade interrompida com a fragmentação de teste.
    • Correção de estado inconsistente no executor do teste após tempos limite de teste no estilo JUnit3.

Outras mudanças importantes

  • Correções de Javadoc e melhorias de mensagens de erro.
  • Ignora métodos suite() e não ignora erros init ao usar filtros de métodos.

Espresso 2.2 / ATSL 0.3 (09-06-2015)

Novos recursos

  • espresso-web 2.2
    • Compatibilidade com o novo WebView
  • espresso-core 2.2
    • Migrado para usar o Dagger v2
    • Migrado para usar o Hamcrest v1.3
  • espresso-contrib 2.2
    • Verificações de acessibilidade
    • Compatibilidade com a gravidade DrawerActions
  • rules 0.3
    • Regra DisableOnAndroidDebug
  • runner 0.3
    • Upgrade do JUnit v4.10 para o JUnit v4.12
    • Migrado para usar o Hamcrest v1.3

Correções de bugs

  • Correção de DrawerActions vazando ParentListener.
  • Agora, a falha de suposição é tratada como um teste de ignorar em vez de um teste com falha.
  • Correção de MonitoringInstrumentation vazando instâncias de atividade por meio de ExecutorService.
  • Correção para atividades órfãs sendo travadas no estágio de parada.
  • Atualização de Until.scrollFinished() para retornar "true" se nenhum evento de rolagem tiver sido gerado. Protege contra possíveis NPE em UiObject2#setText().

Espresso 2.1, Test Runner/Rules 0.2 e UIAutomator 2.1.0 (21-04-2015)

Mudanças importantes

  • O artefato do executor de teste foi dividido em dois, e o nome foi mudado de com.android.support.test:testing-support-lib:0.1 para com.android.support.test:runner:0.2 e com.android.support.test:rules:0.2.

Novos recursos

  • espresso-intents: uma API semelhante ao Mockito que possibilita testes de interatividade hermética, permitindo que os autores do teste verifiquem e criem stubs das intents de saída.
    • IntentsTestRule: estende ActivityTestRule, inicializa e libera Espresso-Intents em testes funcionais da UI.
  • espresso-core
    • ViewActions: adiciona a capacidade para executar declarações globais antes de executar ações. Essa opção é útil para outros frameworks desenvolvidos com base no Espresso para validar o estado da hierarquia de visualização, enquanto o conjunto de testes existente do Espresso é executado.
    • Sobrecarga de resId ViewMatchers.withContentDescription()
  • rules
    • ActivityTestRule: essa regra disponibiliza testes funcionais de uma única atividade.
    • Anotações de UiThreadRule e UiThreadTest: essa regra permite que o método de teste anotado com UiThreadTest seja executado na linha de execução principal do aplicativo (ou na linha de execução da IU).
    • ServiceTestRule: esta regra oferece testes funcionais de um serviço.
  • runner
    • ApplicationLifecycleCallback: callback para o monitoramento de eventos do ciclo de vida do aplicativo.
    • Todos os argumentos do executor agora também podem ser especificados no arquivo de manifesto do Android usando uma tag <meta-data>.
  • UIAutomator
    • UiDevice.dumpWindowHierarchy() agora pode aceitar um File ou um OutputStream.

Correções de bugs

  • Espresso
    • A correspondência de cursor agora retorna false se a coluna não tiver sido encontrada, para que o Hamcrest possa prosseguir para o próximo cursor.
    • NullPointerException com PreferenceMatchers withTitle não ocorre mais.
    • O cancelamento do registro do recurso ocioso não leva mais o Espresso a achar que temos recursos ociosos ocupados.
    • Atualização da versão de anotações de suporte usada pelo Espresso Contrib.
  • Runner
    • AndroidJUnit4 agora pula os testes com suposições incorretas.
  • UIAutomator
    • Execução de observadores para evitar StaleObjectException.

Outras mudanças importantes

  • Adição de uma mensagem de erro melhor quando não é possível digitar texto com uma string não latina.

UIAutomator 2.0 (12-03-2015)

O UI Automator agora é baseado na Instrumentação Android, e você pode criar e executar testes usando o comando ./gradlew connectedCheck.

Espresso Versão 2.0, Test Runner 0.1 (Lançamento em: 19-12-2014)

Mudanças importantes

  • O Espresso foi movido para um novo namespace, de android.support.test.espresso para android.support.test.espresso.
  • Os artefatos do Espresso foram renomeados:
    • espresso-1.1.jar agora é espresso-core-release-2.0.jar.
    • A interface IdlingResource foi movida para uma biblioteca separada, espresso-idling-resource-release-2.0.jar.
    • Agora, CountingIdlingResource reside em espresso-contrib-release-2.0.jar (como sempre deveria ter sido).
  • Uma dependência opcional Guava foi removida da API pública para oferecer compatibilidade com o reempacotamento da dependência Guava e evitar a colisão do DEX (uma das principais fontes de problemas no desenvolvimento). Os métodos afetados incluem:
    • ViewAssertion.check()
    • HumanReadables.getViewHierarchyErrorMessage()

Novos recursos

  • Ações
    • ViewActions
      • replaceText()
      • openLink()
      • Deslizar para cima e para baixo
    • espresso-contrib
      • RecyclerViewActions: gerencia interações com RecyclerViews
      • PickerActions: gerencia interações com os seletores Date e Time
  • Correspondências
    • RootMatchers
      • isPlatformPopup()
    • ViewMatchers
      • isJavascriptEnabled()
      • withSpinnerText()
      • withHint()
      • isSelected()
      • hasLinks()
    • LayoutMatchers: correspondências para testes de layout relacionados ao i18n.
    • CursorMatchers: uma coleção de correspondências para objetos Cursor.
  • Declarações
    • PositionAssertions, incluindo isLeftOf() e isAbove(): coleção de ViewAssertions para verificar a posição relativa dos elementos na tela.
    • LayoutAssertions: declarações para testes de layout relacionados ao i18n.
  • App de teste: diversos novos exemplos de atividades/testes.
  • Outros
    • Espresso.unregisterIdlingResources() e Espresso.getIdlingResources(): oferece mais flexibilidade para funcionamento com IdlingResources.
    • ViewInteraction.withFailureHandler(): permite substituir o gerenciador de falhas de onView().
    • Compatibilidade com onData() para AdapterViews baseadas em CursorAdapters.

Correções de bugs

  • ViewMatchers.isDisplayed() corresponde a visualizações que ocupam a tela inteira, mas que não são mais exibidas em menos de 90%.
  • A execução da chamada da ação de deslizar para DrawerActions.openDrawer() não resulta mais em IdlingResourceTimeoutException.

Outras mudanças importantes

  • Mudança da compilação com o Maven para o Gradle.
  • As dependências do Espresso (Guava, Dagger, Hamcrest) foram movidas para evitar colisões do DEX.
  • Mudança para retornar sucesso ou falha ao registrar e cancelar o registro de recursos ociosos.
  • Compatibilidade com Lollipop: coloque message.recycle() atrás de uma interface para explicar as mudanças relacionadas à versão.
  • Mudança do nível do SDK de destino para 21: afeta principalmente o app de teste.

Versão 1.1 (Lançamento em: 08-01-2014)

Espresso

  • Novo swipeLeft e swipeRight ViewActions
  • Compatibilidade com várias janelas: um recurso avançado que permite escolher a janela de destino em que o Espresso executará a operação.
  • Melhorias em TypeTextAction: permite digitar texto em uma visualização pré-focada, facilitando a adição de texto.
  • Várias correções de bugs.

Biblioteca Espresso Contrib

  • Essa nova biblioteca contém recursos que complementam o Espresso, mas que não fazem parte da biblioteca principal.
  • Novas DrawerActions para operar no DrawerLayout: têm uma dependência na Biblioteca de Suporte do Android. Por isso, elas são mantidas fora da biblioteca principal do Espresso.

Exemplos de teste

  • Esses testes foram realocados para o mesmo pacote do app de teste.
  • Os POMs do Maven foram corrigidos para remover dependências Guava duplicadas. Por isso, mvn install já funciona.