2016-05-06 3 views
4

Wenn ein uninstrumentierter Komponententest (nicht von AndroidTestCase abgeleitet) Code aufruft, der eine ArrayMap verwendet, trifft er auf den berüchtigten Method xxx in xx.xx.xx not mocked Fehler (siehe http://tools.android.com/tech-docs/unit-testing-support#TOC-Method-...-not-mocked.-).Wie kann ArrayMap in Code verwendet werden, der von JUnit (nicht instrumentierten) Android Unit-Tests ausgeführt wird?

Die beste Lösung für diesen Fehler ist in vielen Fällen das Kompilieren des Pakets, das die problematische Klasse enthält, direkt in das Testziel, z. mit json, um dem Hinzufügen zu build.gradle:

testCompile 'org.json:json:20160212' 

ich das nicht von irgendeiner Weise kennen zu tun mit ArrayMap, da im Gegensatz zu json ist es tatsächlich ein Teil der Android-Quelle. Ich glaube nicht, dass es extern verfügbar ist (ich konnte es nicht auf jcenter finden).

Irgendwelche Ideen? Ich möchte keine langsamen Android (instrumentierten) Tests auf dem Emulator ausführen, nur um Klassen der Modellschicht zu testen, die zufällig grundlegende Klassen verwenden (und ihre Methoden zu verspotten würde verrückt erscheinen!).

Antwort

0

Die beste Arbeit, die ich mir vorstellen kann, ist, so etwas wie die gemeinsamen Sammlungen von Apache zu verwenden, wo sie Karten wie ihre HasedMap implementieren. Irgendwie dumm, eine andere Bibliothek zu haben, um etwas so Einfaches zu tun.

Verwandte Themen