O Robolectric pode baixar artefatos do Android runtime enquanto os testes são executados. O fato de uma ferramenta de build resolver com sucesso as dependências comuns do projeto não prova que esse download durante o teste use o mesmo proxy.

O Robolectric 4.9.1 e versões posteriores documentam estas propriedades de sistema para esse downloader:

robolectric.dependency.proxy.host=proxy.example
robolectric.dependency.proxy.port=8080

Passe-as para a JVM que executa os testes. Para downloads públicos de artefatos permitidos por meio de um intermediário HTTP sem autenticação, use um endereço da lista de proxies HTTP nessas propriedades de host e porta. Num projeto Android que usa o Groovy DSL do Gradle, a configuração relevante pode ser:

android {
    testOptions {
        unitTests.all {
            systemProperty 'robolectric.dependency.proxy.host', 'proxy.example'
            systemProperty 'robolectric.dependency.proxy.port', '8080'
        }
    }
}

Mantenha isto junto com a configuração de teste existente do projeto. Uma propriedade fornecida apenas ao lançador do Gradle não é prova de que uma JVM de teste derivada a recebeu.

Para um ambiente de teste deliberadamente desconectado, o Robolectric também documenta robolectric.offline e robolectric.dependency.dir. Essa disposição exige que os artefatos de runtime corretos sejam colocados no diretório especificado. O cache offline do próprio Gradle não substitui o diretório que o resolvedor offline do Robolectric espera.

Artigos relacionados