2013-02-08 18 views
7

का उपयोग कर यूनिट परीक्षण एंड्रॉइड मेरे पास Activity है, मैं इकाई परीक्षण कर रहा हूं। मैं अलगाव में Activity का परीक्षण करना चाहता हूं, इसलिए ActivityUnitTestCase मेरे उद्देश्यों को बहुत अच्छी तरह फिट करता है।गतिविधि यूनिटटेस्टकेस और वरीयता प्रबंधक

मेरे Activity की विधि प्राथमिकता में संग्रहीत एक मान का उपयोग करती है। मैं अपने परीक्षण मामले में इसके लिए एक मूल्य निर्धारित करना चाहता हूं।

समस्या यह है कि मैं यह नहीं समझ सकता कि Preference समय से पहले कैसे सेट करें। में getContext() विधि नहीं है, और getActivity(), जो context वापस लौटाएगा, तब तक शून्य है जब तक कि मैं startActivity() पर कॉल नहीं करता। यह एक विकल्प नहीं है क्योंकि startActivity पर कॉल करने से onCreate विधि ट्रिगर होगी, और यही वह जगह है जहां वरीयता कोड रहता है।

कोई विचार है कि मैं context कैसे प्राप्त कर सकता हूं जिसका उपयोग मैं अपने यूनिट परीक्षणों के लिए प्राथमिकताओं में हेरफेर करने के लिए कर सकता हूं?

उत्तर

9

आप उपकरण के माध्यम से संदर्भ प्राप्त कर सकते हैं।

उपकरण (परीक्षण धावक) के संदर्भ पाने के लिए:

getInstrumentation().getContext() 

लेकिन आप शायद instrumented आवेदन के संदर्भ की जरूरत है:

getInstrumentation().getTargetContext() 
+0

getTargetContext() में काम किया। धन्यवाद! – jacobhyphenated

+1

हाय, लेकिन मेरे मामले में 'getInstrumentation() 'लौटा रहा है ** शून्य **। मैं 'ActivityUnitTestCase' का विस्तार कर रहा हूं। कोई उपाय? –

संबंधित मुद्दे