2013-02-08 11 views
7

Mam Activity Jestem jednostką testującą. Chcę przetestować model Activity w izolacji, więc ActivityUnitTestCase bardzo dobrze pasuje do moich celów.Testowanie urządzenia w systemie Android przy użyciu ActivityUnitTestCase i PreferenceManager

Metoda onCreate mojego Activity używa wartości przechowywanej w Preferencjach. Chciałbym ustawić wartość dla tego w moim przypadku testowym.

Problem polega na tym, że nie mogę wymyślić, jak ustawić przed upływem czasu ustawienie Preference. Nie ma metody getContext() w ActivityUnitTestCase i getActivity(), która powinna zwrócić wartość context, jest pusta, dopóki nie zadzwonię pod startActivity(). Nie jest to opcja, ponieważ wywołanie startActivity wywoła metodę onCreate i tu właśnie działa kod preferencji.

Jakieś przemyślenia na temat tego, jak uzyskać context, którego mogę użyć do manipulowania preferencjami dla moich testów jednostkowych?

Odpowiedz

9

Możesz uzyskać kontekst za pomocą oprzyrządowania.

Aby uzyskać kontekście oprzyrządowania (test biegacza):

getInstrumentation().getContext() 

Ale prawdopodobnie trzeba kontekst oprzyrządowanego aplikacji:

getInstrumentation().getTargetContext() 
+0

getTargetContext() pracował. Dzięki! – jacobhyphenated

+1

Witam, ale w moim przypadku 'getInstrumentation()' zwraca ** null **. Rozszerzam 'ActivityUnitTestCase'. Dowolny pomysł? –

Powiązane problemy