2014-12-16 7 views
5

मैं अपने एपेक्स कोड का परीक्षण करने के लिए स्टेटिक रिसोर्स के माध्यम से एक CSV फ़ाइल लोड कर रहा हूं। इसलिए जैसे CSV फ़ाइल देखो कीकस्टम सोबजेक्ट के साथ Test.loadData अपवाद

List<Territory_Zip_Code__c> territoryData = Test.loadData(Territory_Zip_Code__c.sObjectType, TERRITORY_ZIP_CODES_STATIC_RESOURCE_NAME); 

पहली कुछ पंक्तियों: मैं अपने परीक्षण में निम्नलिखित कोड का उपयोग कर रहा

Territory__c,Zip_Code__c 
ABC,123 
DEF,456 

मैं निम्न त्रुटि हो रही है:

System.StringException: Unknown field: Territory__c

Territory__cमेरे कस्टम sObject के लिए एक वैध API फ़ील्ड नाम है।

मैंने फ़ील्ड नाम के सामने एसओब्जेक्ट नाम जोड़ने का भी प्रयास किया है, जैसे My_Territory__c.Territory__c लेकिन यह भी काम नहीं करता है।

इसके अतिरिक्त, मैंने एपीआई नाम के बजाय फ़ील्ड नाम का उपयोग करने का प्रयास किया (उदाहरण के लिए, Territory) लेकिन यह भी काम नहीं करता था।

अंतर्निहित एसओब्जेक्ट्स जैसे खाता और संपर्क के साथ Test.loadData का उपयोग करने के कई उदाहरण हैं, लेकिन कस्टम सॉब्जेक्ट्स दिखाने वाले कोई उदाहरण नहीं हैं। मुझे लगता है कि कस्टम ऑब्जेक्ट्स के साथ यह संभव नहीं है।

उत्तर

2

test.loadData का उपयोग करना निश्चित रूप से कस्टम ऑब्जेक्ट्स के साथ काम करता है। परीक्षण डेटा सीएसवी हेडर को केवल फ़ील्ड नामों की आवश्यकता होती है, जैसा कि आपके उदाहरण में है।

आपका कोड भी अच्छा दिखता है। एकमात्र अंतर जो मैं खोज सकता हूं वह यह है कि आपका चर एक दृढ़ता से टाइप की गई सूची है। मेरे कोड में मैं एक सूची का उपयोग करता हूं जो काम करता है:

List<sObject> testdata = Test.loadData(MyCustomObject__c.sObjectType, 'mytestdatafile'); 
संबंधित मुद्दे