在我的 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中的记录决定单元测试成功还是失败,这与单元测试的概念相冲突。
感谢您的帮助!
了解 test.isrunningtest() 和 test.setmock() 吗?我喜欢使用 setmock,因为它是调用者(单元测试)注入虚拟结果生成器,您不会在“纯”代码中放入“if test then...”逻辑。
如果您决定使用它 - 您可以在模拟类中硬编码虚拟结果或从自定义元中获取?