学习目标
完成本单元后,您将能够:
- 描述你可以做什么,不能测试元数据部署。
- 解释如何测试元数据容器。
- 解释如何测试元数据回调。
测试您的元数据部署
没有测试覆盖率,没有Apex代码是完整的。因此,您使用Apex元数据API编写的任何代码都必须经过适当的测试。让我们看看你可以测试什么(以及你不能)。
测试元数据部署的主要重点是部署请求的设置和部署结果的处理。要验证请求,可以测试部署容器是否设置正确。要测试部署结果,可以测试您的部署回调按预期运行。
实际上,您无法测试部署后组织的外观。但是测试容器和回调是确保一切正常工作的好方法。
测试您的部署容器
要测试您的部署请求代码,您可以验证所创建的元数据组件和组件值。使用assert语句来确保部署容器包含您所期望的。
下面的代码为您提供了关于我们在单元2中创建的DeployMetadata类的测试类的外观。testDeployment方法创建一个部署请求,并检索我们创建的布局元数据。然后,您可以浏览元数据以确保它包含我们创建的自定义字段。
- 点击设置装置,然后点击开发者控制台,打开 Developer Console.
- 在开发者控制台中,点击 .
- 命名类DeploymentTest并单击 OK.
- 摆脱任何现有的代码,并复制并粘贴下面的示例代码。
@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子类返回myJobId。
public class TestingDeployCallbackContext extends Metadata.DeployCallbackContext {
private Id myJobId = null; //设置为一个固定的ID,你可以用来测试。
public override Id getCallbackJobId() {
return myJobId;
}
}