प्रोग्रामर की मदद कर सकते हैं जो उनके सामग्री प्रदाता का परीक्षण करना चाहते हैं।
कल्पना करें कि आपके सामग्री प्रदाता को MyProvider कहा जाता है और आपके पास कुछ स्थिरांक परिभाषित MyProviderContract नामक कॉन्ट्रैक्ट क्लास है।
सबसे पहले, आप MyProviderTestCase
नामक एक टेस्ट क्लास लिखेंगे जो ProviderTestCase2<MyProvider>
से प्राप्त होता है। आप जो super
निर्माता फोन करेगा एक निर्माता को परिभाषित करना होगा: (अपनी सामग्री प्रदाता के उपयोगकर्ताओं के लिए यह सीधे नहीं पहुंच सकेगी रूप getProvider()
उपयोग करने से बचें) के बजाय सीधे अपने प्रदाता का उपयोग करने का, तो फिर
public MyProviderTestCase() {
super(MyProvider.class, MyProviderContract.AUTHORITY);
}
, का उपयोग getMockContentResolver()
किसी सामग्री रिज़ॉल्वर का संदर्भ प्राप्त करने के लिए और फिर इस सामग्री रिज़ॉल्वर के तरीकों को कॉल करें (query
, insert
, आदि)। निम्नलिखित कोड में, मैं दिखाता हूं कि insert
विधि का परीक्षण कैसे करें।
public void testInsert() {
Uri uri = MyProviderContract.CONTENT_URI;
ContentValues values = new ContentValues();
values.put(MyProviderContract.FIELD1, "value 1");
values.put(MyProviderContract.FIELD2, "value 2");
Uri resultingUri = getMockContentResolver().insert(uri, values);
// Then you can test the correct execution of your insert:
assertNotNull(resultingUri);
long id = ContentUris.parseId(resultingUri);
assertTrue(id > 0);
}
तो फिर तुम के रूप में कई परीक्षण तरीकों के रूप में आप चाहते हैं जोड़ सकते हैं, सीधे अपने सामग्री प्रदाता के बजाय एक सामग्री समाधानकर्ता का उपयोग कर, के रूप में अपनी सामग्री प्रदाता की उन करना होगा।
इंटरनेट पर ProviderTestCase2 कक्षा पर बहुत अधिक नमूना कोड नहीं है। यह बहुत उपयोगी है। – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
[एंड्रॉइड प्रलेखन] में (http://developer.android.com/tools/testing/contentprovider_testing.html#WhatToTest), वे अनुशंसा करते हैं कि आप सीधे अपने सामग्री प्रदाता का उपयोग न करें और इसके बजाय सामग्री रिज़ॉल्वर से गुज़रें। सामग्री प्रदाता का परीक्षण करने के तरीके के बारे में अधिक पर्याप्त उदाहरण देखने के लिए बस मेरी पोस्ट पढ़ें। – eternay