2014-12-16 15 views
5

Tôi đang tải tệp CSV qua Nguồn cấp dữ liệu tĩnh để kiểm tra mã APEX của mình. Tôi đang sử dụng đoạn mã sau vào thử nghiệm của tôi:Test.loadData với Custom sObject Throws Exception

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

Một vài dòng đầu tiên của file nhìn CSV như vậy:

Territory__c,Zip_Code__c 
ABC,123 
DEF,456 

Tôi nhận được lỗi sau:

System.StringException: Unknown field: Territory__c

Territory__clà tên trường API hợp lệ cho sObject tùy chỉnh của tôi.

Tôi cũng đã thử thêm tên sObject ở phía trước tên trường, chẳng hạn như My_Territory__c.Territory__c nhưng điều đó cũng không hoạt động.

Ngoài ra, tôi đã thử sử dụng tên trường thay vì tên API (ví dụ: Territory) nhưng điều đó cũng không hoạt động.

Có rất nhiều ví dụ về việc sử dụng Test.loadData với các sObject tích hợp, chẳng hạn như Tài khoản và Danh sách liên hệ, nhưng không có ví dụ nào cho thấy các sObject tùy chỉnh. Tôi bắt đầu nghĩ rằng điều này chỉ là không thể với các đối tượng tùy chỉnh.

Trả lời

2

Sử dụng test.loadData chắc chắn nhất không hoạt động với các đối tượng tùy chỉnh. Tiêu đề CSV dữ liệu thử nghiệm chỉ cần tên trường, như bạn có trong ví dụ của mình.

Mã của bạn cũng có vẻ tốt. Sự khác biệt duy nhất tôi có thể nhận ra là biến của bạn là một danh sách được đánh máy mạnh mẽ. Trong mã của tôi, tôi sử dụng Danh sách có vẻ hoạt động:

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