2014-12-16 15 views
5

Sto caricando un file CSV tramite risorse statiche per testare il codice APEX. Sto usando il seguente codice nel mio test:Test.loadData con Custom sObject genera eccezioni

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

Le prime righe del file aspetto CSV in questo modo:

Territory__c,Zip_Code__c 
ABC,123 
DEF,456 

Sto ottenendo il seguente errore:

System.StringException: Unknown field: Territory__c

Territory__cè un nome di campo API valido per il mio oggetto personalizzato.

Ho anche provato ad aggiungere il nome sObject davanti al nome del campo, come My_Territory__c.Territory__c ma non ha funzionato.

Inoltre, ho provato a utilizzare il nome del campo, anziché il nome dell'API (ad esempio, Territory) ma non ha funzionato.

Esistono molti esempi di utilizzo di Test.loadData con oggetti di accesso incorporati, ad esempio Account e Contatti, ma nessun esempio che mostra oggetti personalizzati. Sto iniziando a pensare che questo non sia possibile con oggetti personalizzati.

risposta

2

L'utilizzo di test.loadData funziona sicuramente con oggetti personalizzati. L'intestazione CSV dei dati di test richiede solo i nomi dei campi, come nel tuo esempio.

Anche il tuo codice sembra buono. L'unica differenza che ho notato è che la tua variabile è una lista fortemente tipizzata. Nel mio codice uso una lista che sembra funzionare:

List<sObject> testdata = Test.loadData(MyCustomObject__c.sObjectType, 'mytestdatafile');