跳至内容
白白随笔

白白随笔

Salesforce官方讲师

学习目录

近期文章

  • Salesforce CLI 配置和提示
  • Salesforce CLI 设置指南
  • 持续集成
  • 开发解锁包
  • 解锁包
  • 构建和发布应用
  • 部署
  • 沙盒
  • 临时组织
  • 授权
  • Salesforce 开发人员体验如何改变您的工作方式
  • 将 Experience Cloud 站点从沙盒部署到生产环境
  • 开发安全站点: CSP、LWS 和 闪电 柜子
  • 开发安全站点:经过身份验证的用户和来宾用户
  • 自定义模板的主题布局
  • 自定义体验生成器模板的外观
  • Experience Cloud 开发人员指南
  • 部署和检索元数据
  • 快速入门:元数据 API
  • 元数据 API 开发人员指南

归档

  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2024 年 1 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2021 年 1 月
  • 2020 年 12 月
  • 2020 年 6 月
  • 2020 年 5 月
  • 2020 年 4 月
  • 2019 年 11 月
  • 2019 年 10 月
  • 2019 年 9 月
  • 2019 年 8 月
  • 2019 年 7 月
  • 2019 年 6 月
  • 2019 年 4 月
  • 2018 年 12 月
  • 2018 年 11 月
  • 2018 年 10 月
  • 2018 年 9 月
  • 2018 年 8 月
  • 2018 年 7 月
  • 2018 年 5 月
  • 2018 年 4 月
  • 2018 年 3 月
  • 2018 年 2 月
  • 2018 年 1 月
  • 2017 年 12 月
  • 2017 年 11 月
  • 2017 年 8 月

分类

  • Analytics Cloud
    • Analytics Administration
    • Analytics Apps Basics
    • Analytics Basics
    • Analytics Dashboard
    • Analytics Data Integration
    • Analytics Exploration
    • App Design
    • App Template
    • Build Advanced Analytics
    • Build Analytics
    • Custom Map
    • Einstein Analytics
    • Einstein Basics
    • Einstein Discovery Basics
    • Einstein Discovery Stories
    • Einstein Discovery Story Insights
    • Einstein Prediction Builder
    • Embed an Einstein Analytics
    • Event Monitoring
    • Gauge Chart
    • Mobile Exploration
    • Sales Analytics
    • Service Analytics
  • Apex
    • Apex Trigger
    • Apex 开发人员指南
    • Apex-Metadata API
    • Apex-基础
    • Apex-大数据处理
    • Apex-异步
    • Apex-测试
    • 事件驱动
    • 大对象
  • AppExchange合作伙伴
    • AppExchange合作伙伴基础
    • AppExchange应用试用管理
    • ISVforce 指南
    • 合作伙伴社区
    • 合作伙伴诚信道德
    • 安全审查
    • 应用升级
    • 应用程序策略
    • 应用程序部署
    • 应用许可证
    • 试用版管理
  • Commerce Cloud
    • Commerce Cloud功能
    • Commerce Cloud和客户成功平台
    • Commerce Cloud基础
    • Commerce Cloud爱因斯坦实施
    • Commerce的体系结构
    • Salesforce B2B Commerce基础
    • Salesforce B2C Commerce for 合作伙伴
    • Salesforce B2C Commerce SEO URL
    • Salesforce B2C Commerce启动准备
    • Salesforce B2C Commerce客户分析
    • Salesforce B2C Commerce导入/导出
    • Salesforce B2C Commerce店面实施
    • Salesforce B2C Commerce按需沙盒
    • Salesforce B2C Commerce程序员
    • Salesforce B2C Commerce网站准备情况评估
    • Salesforce B2C Commerce项目管理
    • Salesforce B2C Commerce预定作业
    • Salesforce B2C商业信任网站
    • Salesforce B2C商业复制
    • Salesforce B2C商业活动和促销
    • Salesforce B2C商务
    • Salesforce B2C商务功能咨询策略
    • Salesforce B2C商务角色和权限
    • Salesforce B2C商家贸易
    • Salesforce订单管理
    • 使用Commerce Cloud Einstein进行更智能的搜索
    • 使用Salesforce B2C Commerce的假期准备
    • 爱因斯坦对Commerce Cloud的产品建议
  • Community社区云
    • Community-基础
    • Community-搜索
    • Community-知识库和聊天
    • Community-部署
    • Experience Cloud 开发人员指南
    • 分布式组织中的品牌定位
    • 合作伙伴关系管理
    • 合作伙伴渠道销售
    • 渠道管理和合作伙伴门户
  • Dreamforce
  • Field Service
    • Field Service基础
    • Field Service配置
    • FSL Managed Package
  • Financial Services
    • 智能推荐和金融服务云计分
    • 金融服务云中的行动计划
    • 金融服务云发布准备
    • 金融服务云基础
    • 金融服务云定制
    • 金融服务云数据建模
    • 金融服务云数据模型基础知识
    • 金融服务云的客户名单增长
    • 金融服务云的抵押掌握
    • 金融服务云社区
  • Integrate
    • Canvas
    • Heroku
    • REST API 开发人员指南
    • Salesforce Connect
    • Salesforce-API
    • 元数据 API 开发人员指南
  • Lightning Web Components
    • Lightning Web 组件开发人员指南
    • Salesforce DX 开发人员指南
    • 使用Lightning Web Components开放源代码访问Salesforce数据
    • 使用Lightning Web Components开源构建您的第一个应用程序
    • 使用Lightning Web组件构建Bear-tracking应用程序
    • 在闪电Web组件之间通信
    • 将Lightning Web Components开源转换为Salesforce
    • 快速入门:探索Lightning Web Components OSS食谱示例应用程序
    • 快速入门:探索Visualforce至LWC示例应用程序
    • 快速入门:闪电Web组件
    • 构建可重复使用的闪电组件
    • 设置您的Lightning Web Components开发人员工具
    • 适用于Aura开发人员的Lightning Web Components
    • 适用于Visualforce开发人员的Lightning Web组件
    • 闪电Web组件和Salesforce数据
    • 闪电Web组件基础
    • 闪电Web组件测试
  • Lightning-开发
    • Lightning-应用程序
    • Lightning-开发基础
    • Lightning-数据访问
    • Lightning-组件
    • Lightning-覆盖标准按钮
    • Lightning-设计
    • LWC中的Javascript
  • Lightning-配置
    • Lightning – Chatter
    • Lightning – 基础
    • Lightning – 实施上线
    • Lightning – 报表
    • Lightning – 特征
    • Lightning – 自定义设置
    • Lightning – 面向销售
    • Lightning-流
    • Linghting – AI
  • Marketing Cloud
    • Email Studio
  • Sales Cloud
    • Campaign基础
    • 销售区域计划
    • 销售区域预测
  • Salesforce CPQ
  • Salesforce-开发
    • Big Objects
    • GitHub
    • Platform Cache
    • Salesforce CLI 设置指南
  • Salesforce管理员
    • Outlook集成
    • 公式
    • 移动配置
    • 管理员-公司组织设置
    • 管理员-基础
    • 管理员-数据清理
    • 管理员-数据管理
    • 管理员-数据结构
    • 管理员-用户基础知识
    • 管理员-设置
  • Service Cloud
    • Omni-Channel
    • Service Cloud基础
    • 个案
    • 呼叫中心集成
    • 服务控制台
  • Visualforce
    • Visualforce 开发人员指南
    • Visualforce-基础
    • Visualforce-邮件模板
  • VSCode的Salesforce扩展
  • 开发方法论
    • Kanban
    • Salesforce 敏捷开发
    • Scrum
    • 应用程序生命周期和开发模型
    • 开发生命周期
    • 敏捷模型
  • 未分类
  • 第三方打通
    • 百度地图
  • 认证考试
    • 初级开发
  • 产品介绍
    • 服务云
    • 销售云
    • 营销云
    • 电商云
  • 公司介绍
  • 关于我们
  • 博客首页
  • 培训课程
    • DEX450
    • DEX502
    • ADX201
    • ADX211
    • DEX403
  • 学习目录
  • 学习视频
    • 系统管理员视频课
    • 高级系统管理员视频课
  • 示例页面
  • 隐私政策

Apex-Metadata API(4)

学习目标

完成本单元后,您将能够:

  • 描述你可以做什么,不能测试元数据部署。
  • 解释如何测试元数据容器。
  • 解释如何测试元数据回调。

测试您的元数据部署

没有测试覆盖率,没有Apex代码是完整的。因此,您使用Apex元数据API编写的任何代码都必须经过适当的测试。让我们看看你可以测试什么(以及你不能)。

测试元数据部署的主要重点是部署请求的设置和部署结果的处理。要验证请求,可以测试部署容器是否设置正确。要测试部署结果,可以测试您的部署回调按预期运行。

实际上,您无法测试部署后组织的外观。但是测试容器和回调是确保一切正常工作的好方法。

测试您的部署容器

要测试您的部署请求代码,您可以验证所创建的元数据组件和组件值。使用assert语句来确保部署容器包含您所期望的。

下面的代码为您提供了关于我们在单元2中创建的DeployMetadata类的测试类的外观。testDeployment方法创建一个部署请求,并检索我们创建的布局元数据。然后,您可以浏览元数据以确保它包含我们创建的自定义字段。

  1. 点击设置装置,然后点击开发者控制台,打开 Developer Console.
  2. 在开发者控制台中,点击 File | New | Apex Class.
  3. 命名类DeploymentTest并单击 OK.
  4. 摆脱任何现有的代码,并复制并粘贴下面的示例代码。
@IsTest
public class DeploymentTest {
    @IsTest
    static void testDeployment() {
        DeployMetadata deployMd = new DeployMetadata();
        
        Metadata.DeployContainer container = deployMd.constructDeploymentRequest();
        List<Metadata.Metadata> contents = container.getMetadata();
        System.assertEquals(1, contents.size());
        Metadata.Layout md = (Metadata.Layout) contents.get(0);
       
        // 执行布局元数据的各种断言。
        System.assertEquals('Account-Account Layout', md.fullName);
    }
}
测试您的部署回调

要测试您的部署结果,请验证回调是否处理预期的和意外的结果。您的回调通常由Salesforce作为异步部署过程的一部分调用。因此,要在部署过程之外测试回调,请直接创建使用回调类的测试。

以下是我们在单元2中创建的PostInstallCallback类的测试类的样子。代码实例化回调,并创建DeployResults和DeployCallbackContext对象的测试实例。它使用这些测试实例来验证DeployCallback.handleResults方法。

从开发人员控制台中,使用名称MyDeploymentCallbackTest和以下代码创建一个Apex类。

@IsTest
public class MyDeploymentCallbackTest {
    @IsTest
    static void testMyCallback() {
        
        // 实例化回调。
        Metadata.DeployCallback callback = new PostInstallCallback();
       
        // 创建测试结果和上下文对象。
        Metadata.DeployResult result = new Metadata.DeployResult();
        result.numberComponentErrors = 1;
        Metadata.DeployCallbackContext context = new Metadata.DeployCallbackContext();
        
        // 调用回调的handleResult方法。
        callback.handleResult(result, context);
    }
}
在这个例子中,DeployCallbackContext返回一个空的作业ID(通过getCallbackJobId方法)。如果您需要非空值,则可以创建DeployCallbackContext的子类并提供自己的getCallbackJobId方法实现。例如:
// 用于测试的DeployCallbackContext子类返回myJobId。
public class TestingDeployCallbackContext extends Metadata.DeployCallbackContext {
    private Id myJobId = null; //设置为一个固定的ID,你可以用来测试。
    public override Id getCallbackJobId() {
        return myJobId;
    }
}
注意

Apex Metadata API不是为测试其他代码而构建的。使用Apex元数据API为单元测试打开和关闭功能是很诱人的。但是,由于Apex元数据API依赖于异步部署,因此与Apex的同步测试不兼容。

发布于 2018年1月27日作者 ponybai分类 Apex-Metadata API

文章导航

上一篇 上篇文章: Apex-Metadata API(3)
下一篇 下篇文章: Apex-Metadata API(5)
自豪地采用WordPress