如何在我的测试代码中创建fieldSet?

时间:2018-02-14 08:12:28

标签: unit-testing salesforce apex

我正在开发一个关于salesforce平台的应用程序,现在我想打包我的应用程序并上传它,但是系统告诉我我必须先测试我的apex控制器。在我的应用程序中,我使用fieldSet函数:

public static List<Schema.FieldSetMember> getDetailed_ContentFields(String typeName,String fieldSetName) {
    List<Schema.FieldSetMember> f = Schema.getGlobalDescribe().get(typeName)
        .getDescribe().fieldSets.getMap().get(fieldSetName).getFields();
    return f;
}

我想创建一个用于测试的字段集,但我不能使用&#34; Schema.FieldSetMember fieldSet = new Schema.FieldSetMember();&#34;因为Schema.FieldSetMember类型无法构造。我可以通过编码在我的测试代码中创建fieldset吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

简短回答否则您无法在测试中创建字段集,除非您使用工具API。

字段集是元数据,可以在测试中引用,如下所示:

@IsTest
static void testGetDetailedContentFields() {
    System.assertEquals(
        MyClassName.getDetailed_ContentFields(MyTypeName, MyFieldSetName),
        Schema.getGlobalDescribe().get(MyTypeName).getDescribe().fieldSets.getMap().get(MyFieldSetName).getFields(),
        'Expected the same fieldset to be returned'
    );
}