由自定义元类型控制的 Apex 测试逻辑

问题描述 投票:0回答:1

在我的 Apex 代码中,我已经有一个外部 HTTP 标注。

现在,我的目标是创建一个数据模型以在沙箱中进行测试。

模型的工作原理如下:Apex 不进行真正的标注,而是读取存储在自定义元数据类型记录中的静态 JSON 值。我在自定义设置中使用布尔标志打开/关闭模型。

if (useMockup()) { // check the boolean flag in custom setting;
  return getMockUpHttpResponse(); // the data is retrieved from custom metadata type record;
} else{
  // do real http callout;
}

我的挑战是如何对这个逻辑进行单元测试。自定义元数据类型暴露给Apex代码,org中的记录决定单元测试成功还是失败,这与单元测试的概念相冲突。

感谢您的帮助!

salesforce apex apex-code
1个回答
0
投票

了解 test.isrunningtest() 和 test.setmock() 吗?我喜欢使用 setmock,因为它是调用者(单元测试)注入虚拟结果生成器,您不会在“纯”代码中放入“if test then...”逻辑。

如果您决定使用它 - 您可以在模拟类中硬编码虚拟结果或从自定义元中获取?

© www.soinside.com 2019 - 2024. All rights reserved.