2013-02-08 5 views
7

Ich habe eine Activity Ich bin Unit-Tests. Ich möchte die Activity isoliert testen, damit die ActivityUnitTestCase meine Zwecke sehr gut erfüllt. Die onCreate Methode meiner Activity verwendet einen Wert, der in den Einstellungen gespeichert ist. Ich möchte in meinem Testfall einen Wert dafür setzen. Das Problem ist, dass ich nicht herausfinden kann, wie man die Preference vor der Zeit einstellen kann. Es gibt keine getContext() Methode in ActivityUnitTestCase, und getActivity(), die eine context zurückgeben sollte, ist null, bis ich startActivity() rufe. Dies ist keine Option, da das Aufrufen von startActivity die Methode onCreate auslöst, und hier wird der Präferenzcode gespeichert.Unit Testen Android mit ActivityUnitTestCase und PreferenceManager

Irgendwelche Gedanken darüber, wie ich eine context bekommen kann, die ich verwenden kann, um die Einstellungen für meine Komponententests zu manipulieren?

Antwort

9

Sie können den Kontext über die Instrumentierung abrufen.

auf den Kontext der Instrumentierung (Test-Runner) erhalten:

getInstrumentation().getContext() 

Aber Sie müssen wahrscheinlich den Kontext der instrumentierte Anwendung:

getInstrumentation().getTargetContext() 
+0

getTargetContext() gearbeitet. Vielen Dank! – jacobhyphenated

+1

Hallo, aber in meinem Fall gibt 'getInstrumentation()' zurück ** null **. Ich erweitere 'ActivityUnitTestCase'. Irgendeine Idee? –