带有自定义sObject的Test.loadData引发异常

时间:2014-12-16 18:52:52

标签: csv salesforce apex-code apex

我正在通过Static Resourced加载CSV文件来测试我的APEX代码。我在测试中使用以下代码:

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:未知字段:Territory__c

Territory__c 是我的自定义sObject的有效API字段名称

我还尝试在字段名称前添加sObject名称,例如My_Territory__c.Territory__c,但这也不起作用。

此外,我尝试使用字段名称,而不是API名称(例如,Territory),但这也没有用。

有许多使用带有内置sObject的Test.loadData的示例,例如Account和Contacts,但没有显示自定义sObject的示例。我开始认为这对于自定义对象来说是不可能的。

1 个答案:

答案 0 :(得分:2)

使用test.loadData肯定可以使用自定义对象。测试数据CSV标头只需要字段名称,就像您的示例中一样。

您的代码也很好看。我能发现的唯一区别是你的变量是强类型列表。在我的代码中,我使用了一个似乎有用的List:

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