学习目标
- 列出使用Apex时的测试覆盖率要求。
- 描述创建AppExchange应用程序时要执行的特定测试。
- 列出您的测试必须解决的安全漏洞类型,以通过安全审查。
测试和您的AppExchange应用程序
要明确,我们知道你知道测试的重要性。在本单元中,我们将探讨一些关于测试的特定于Salesforce的标准,更重要的是针对您的一些AppExchange测试需求。
Apex测试框架
平台陷阱
- 记录在整个组织中唯一的ID
- 引用客户可以更改的值,如选取列表值或记录类型名称
还要考虑到你的客户可能正在使用平台加密。记录您在应用程序中依赖的标准对象的标准字段。如果您想支持使用平台加密的客户,请测试您的应用在这些字段是否加密时不会中断。然后,您可以将您的应用标记为支持AppExchange上的加密字段。查看我们的帮助和培训文档的平台加密部分了解更多信息。
日常测试

- 您的Apex代码正常工作,通过所有测试并符合测试要求。
- 您的自定义UI会按照您的预期显示和反应。
- 您的业务逻辑符合要求,不会做任何额外的事情。
预发布包测试
托管测试版 - 软件包
- 将来自源代码管理系统的更改推送到您的测试版包装组织。
- 创建托管测试版 - 包含您的应用的软件包。
- 上传软件包。
- 在测试组织中:
- 安装软件包并进行测试。
- 如果发现问题:
- 卸载测试组织中的软件包。
- 在测试版包装组织中更新您的应用,并在必要时编辑您的包裹内容
- 返回到第2步。
- 如果没有问题发生并且开发完成,是时候转向一个托管 - 发布的包。
请注意,在构建和测试周期中,您将卸载测试版软件包并在测试组织中安装新的测试版软件包。 Beta软件包不可升级,因此您无法将一个版本的Beta软件包安装在另一个版本上。有关更多信息,请参阅卸载软件包和安装软件包。
注意这个命名空间
打包应用程序后,请确保您检查了您是否正确使用了名称空间。应用程序中对组件的JavaScript引用不会自动使用程序包的名称空间进行更新。验证所有涉及JavaScript的自定义,无论是在Visualforce页面还是在Lightning组件(使用JavaScript)中,都仍然正常工作。
保证安全
在AppExchange上发布您的应用程序之前,它必须经过安全审查。在整个开发周期中解决安全问题,如需求清单中所述。
- 您的代码尊重由组织的Salesforce管理员指定的字段级别和对象安全性。请特别关注此主题,因为它会导致在安全审查期间标记许多应用程序。
- 您已编写JavaScript和HTML以防止跨站脚本攻击(XSS)攻击。
- 在平台上传输数据和从平台传输数据以及将平台上的敏感信息(例如登录证书和客户数据)存储在外时,您已经实施了加密。
安全审查包括针对您的应用运行多个测试。您可以在提交应用程序之前运行一些测试。将它们合并到您的测试周期中。
包装和客户修改
当您上传您的软件包时,您可以设置客户组织必须满足的软件包和对象要求才能成功安装您的应用程序。如果您不知道在这里选择什么,请不要担心。它带有经验,而且风险很低 - 通常情况下,默认值都很好。


托管 - 发布的软件包
当您认为您的应用在打包状态下无缺陷时,现在可以在您的测试版打包组织中创建托管 - 发布的软件包了。你如何创建一个发布的包?这只是您上传包装时的一个选项。

然后通过一轮测试发送包裹。
现在是时候把它的应用程序包装在它的金色包裹里了
当一切都很好时,就该使用金色包裹组织了。
- 使用迁移工具将您的应用程序移至您的黄金包组织。
- 设置您的面向客户的名称空间。
- 打包你的组件。
- 创建您的托管 - 发布的软件包。
- 然后,是的,再做一轮测试。
完成所有工作后,现在是时候发送应用以进行安全审查。在您的应用程序通过安全审查后,该出售了。
概要
- 满足功能要求
- 书面测试来验证你的代码
- 解决了安全漏洞
- 外部代码正确引用名称空间
- 安装说明
- 包和对象要求
你做到了!您现在知道使用AppExchange合作伙伴工具开发应用程序的所有基本知识。出发。学到更多。写那个惊人的应用程序