在单元测试中动态创建记录类型

时间:2015-04-10 17:07:39

标签: unit-testing salesforce apex

我们有一些逻辑依赖于托管包中自定义对象的记录类型。我们的一个客户为这个SObject创建了一些自定义记录类型 - 这引发了异常。 我们已经修复了,但是想要更新我们的单元测试来捕获这个案例 - 所以我们需要能够为这个SObject创建一个新的RecordType并分配它。但是,我无法弄清楚如何在Apex中动态执行此操作。

尝试:

insert new RecordType(...);

这会抛出“RecordType上不允许使用DML”。

根据SF API,RecordType有一个“创建”方法,但是:

RecordType rt = new RecordType();
rt.DeveloperName = 'Test';
rt.Name = 'Test';
rt.SObjectType = 'Listing__c';
rt.create();

收益率“方法不存在或签名不正确”。尝试作为静态方法时的结果相同:

RecordType.create(rt);

想法?

1 个答案:

答案 0 :(得分:1)

在与其他一些SF开发人员讨论并重新阅读API文档后,看起来这不能通过APEX API完成(尽管可能通过SOAP API调用)。

http://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm#StartTopic=Content/apex_dml_non_dml_objects.htm?SearchType=Stem