我正在通过静态资源加载 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: Unknown field: Territory__c
Territory__c
是我的自定义 sObject 的有效 API 字段名称 。我还尝试在字段名称前添加 sObject 名称,例如
My_Territory__c.Territory__c
但这也不起作用。此外,我尝试使用字段名称而不是 API 名称(例如
Territory
),但这也不起作用。有很多将 Test.loadData 与内置 sObjects 一起使用的示例,例如 Account 和 Contacts,但没有显示自定义 sObjects 的示例。我开始认为这对于自定义对象是不可能的。
最佳答案
使用 test.loadData 肯定适用于自定义对象。测试数据 CSV header 只需要字段名称,就像您在示例中一样。
你的代码看起来也不错。我能发现的唯一区别是您的变量是一个强类型列表。在我的代码中,我使用了一个似乎有效的 List:
List<sObject> testdata = Test.loadData(MyCustomObject__c.sObjectType, 'mytestdatafile');
关于csv - 带有自定义 sObject 的 Test.loadData 引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27511866/