2014-12-16 1 views
5

Я загружаю CSV-файл через Static Ресурс, чтобы проверить мой код APEX. Я использую следующий код в моем тесте:Test.loadData с пользовательским sObject Throws Exception

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

Первые несколько строк файла выглядят CSV, как так:

Territory__c,Zip_Code__c 
ABC,123 
DEF,456 

Я получаю следующее сообщение об ошибке:

System.StringException: Unknown field: Territory__c

Territory__c- это допустимое имя поля API для моего пользовательского sObject.

Я также попытался добавить имя sObject перед именем поля, например My_Territory__c.Territory__c, но это тоже не сработало.

Кроме того, я попытался использовать имя поля вместо имени API (например, Territory), но это тоже не сработало.

Существует множество примеров использования Test.loadData со встроенными sObjects, такими как учетная запись и контакты, но нет примеров, показывающих пользовательские объекты sObjects. Я начинаю думать, что это невозможно с пользовательскими объектами.

ответ

2

Использование test.loadData, безусловно, работает с пользовательскими объектами. В тестовых данных CSV-заголовка нужны только имена полей, как в вашем примере.

Ваш код также выглядит хорошо. Единственное различие, которое я мог заметить, это то, что ваша переменная является строго типизированным списком. В моем коде используется Список, который, как представляется, работает:

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