Robolectric kan Android-runtime-artefacten downloaden terwijl tests draaien. Dat een buildtool de gewone afhankelijkheden van het project met succes oplost, bewijst niet dat deze download tijdens de test dezelfde proxy gebruikt.

Robolectric 4.9.1 en later documenteren deze systeemeigenschappen voor die downloader:

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

Geef ze door aan de JVM die de tests uitvoert. Voor openbare artefactdownloads die via een niet-geauthenticeerde HTTP-tussenpersoon zijn toegestaan, gebruikt u een adres uit de HTTP-proxylijst in deze host- en poorteigenschappen. Voor een Android-project met de Groovy-DSL van Gradle kan de relevante configuratie er zo uitzien:

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

Houd dit bij de bestaande testconfiguratie van het project. Een eigenschap die alleen aan de Gradle-launcher wordt gegeven, is geen bewijs dat een afgesplitste test-JVM die heeft ontvangen.

Voor een bewust losgekoppelde testomgeving documenteert Robolectric ook robolectric.offline en robolectric.dependency.dir. Die opzet vereist dat de juiste runtime-artefacten in de opgegeven map staan. De eigen offline-cache van Gradle vervangt niet de map die de offline-resolver van Robolectric verwacht.

Gerelateerde artikelen