2012-03-29 6 views
0

Ich schreibe Android JUnit-Testfälle für Projekt A mit Projekt B als Bibliothek (Projekteigenschaften/Android/Bibliothek). Meine Testfälle müssen sowohl von Projekt A als auch von Projekt B auf Ressourcen (View-IDs, Strings usw.) zugreifen. Wenn ich Projekt A und/oder Projekt B als Android/Bibliotheken oder als Java-Build-Pfad/Projekte zu meinem Testprojekt hinzufüge, Jeder Aufruf von ActivityInstrumentationTestCase2.getActivity() löst eine ClassCastException aus.ActivityInstrumentationTestCase2.getActivity() löst ClassCastException für Bibliotheken aus

Wenn ich sie nicht hinzufüge, gibt der Aufruf die entsprechende Aktivität zurück, aber ich habe keinen Zugriff auf die Ressourcen-IDs der zwei zu testenden Projekte. Ich habe auch keinen Zugriff auf die Objekte in Projekt B, die benötigt werden, um Projekt A korrekt zu testen. Ich kann hier keine Mock-Objekte verwenden.

Hat jemand dieses Problem schon einmal entdeckt und gelöst?

+0

_I nicht Haben Sie Zugriff auf die Ressourcen-IDs der beiden getesteten Projekte_, kann die Quelle mit logcat helfen anderen Ihr Problem zu finden. – yorkw

+0

Ich arbeite unter NDA und kann keine Quell- oder Logcat-Daten posten (ich wünschte, ich könnte). Ich weiß, es macht die Beantwortung dieser Frage schwieriger ... – damnhippie

Antwort

0

Versuchen Sie dies den Zugriff auf Ressourcen aus der Bibliothek: (ich glaube, es wird funktionieren)

getInstrumentation().getTargetContext().getResources()...; 

Dies wird Ressourcen aus dem Testprojekt laden: (funktioniert auf jeden Fall)

getInstrumentation().getContext().getResources()...; 
+0

Danke! Ich kann mit den oben beschriebenen Methoden zu den Ressourcen gelangen. Ich brauche aber auch Zugriff auf die öffentlichen Klassen und Schnittstellen des Bibliotheksprojekts. Ich habe die Frage bearbeitet, um dies anzuzeigen. – damnhippie

Verwandte Themen