Wenn ich ./gradlew Tasks ausgeführt habe, bemerke ich eine Build-Aufgabe namens mockableAndroidJar. Die Beschreibung sagt folgendes:android - grelle Aufgabe genannt mockableAndroidJar, wie man es tatsächlich in unitTests verwendet
Erstellt eine Version von android.jar, die für Komponententests geeignet ist.
Kann mir jemand ein Beispiel geben, wie ich diesen Jar-Mock im Code verwenden kann?
Vom android tools page sah ich folgendes:
Unit-Tests auf einem lokalen JVM laufen auf Ihrer Entwicklungsmaschine. Unser gradle-Plugin kompiliert den Quellcode in src/test/java und führt ihn mit den üblichen Gradle-Testmechanismen aus. Zur Laufzeit werden Tests mit einer modifizierten Version von android.jar ausgeführt, bei der alle finalen Modifikatoren entfernt wurden. Auf diese Weise können Sie beliebte Mocking-Bibliotheken wie Mockito verwenden.
Aber meine Frage ist, kann mir jemand zeigen, wie ich meinen Test verwenden kann diese neue android.jar-Datei anstelle der aktuellen, die Finals auf den Klassen hat? Wie zeigen Sie Tests, um dieses Glas stattdessen zu verwenden? Ich sah this question, aber es zeigt mir nicht, wie man das in Tests verwendet, gibt nur Theorie. Ich lief eigentlich den folgenden Befehl von Shell:
./gradlew mockableAndroidJar
und der Ausgang wurde der folgende:
$./gradlew mockableAndroidJar
Picked up JAVA_TOOL_OPTIONS: -Xmx512m -Xms64m
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=768m; support was removed in 8.0
Incremental java compilation is an incubating feature.
:app:mockableAndroidJar UP-TO-DATE
BUILD SUCCESSFUL
Total time: 1.226 secs
Also ich dachte, es würde einige Veränderung in meinem Verzeichnisstruktur sein, aber ich sehe nicht vorhanden. Wird die JAR-Datei automatisch für mich ausgetauscht?