我正在通过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的示例。我开始认为这对于自定义对象来说是不可能的。
答案 0 :(得分:2)
使用test.loadData肯定可以使用自定义对象。测试数据CSV标头只需要字段名称,就像您的示例中一样。
您的代码也很好看。我能发现的唯一区别是你的变量是强类型列表。在我的代码中,我使用了一个似乎有用的List:
List<sObject> testdata = Test.loadData(MyCustomObject__c.sObjectType, 'mytestdatafile');