python - 如何使用 python simple-salesforce 测试插入/更新是否成功
问题描述
tl;dr如何测试update
或insert
使用 simple-salesforce python 包的可行性?
我正在为我创建的基于 simple-salesforce 的 python 类编写测试脚本。该类涉及sf.bulk.Object_Name__c.insert(data)
和sf.bulk.Object_Name__c.update(data)
代码,但在测试脚本中,我想确认插入/更新是否会成功插入,而无需实际提交新记录或更改。
我看到的唯一表明这可能是可能的项目是Simple-Salesforce 文档中的一个页面,指出该simple_salesforce.tests.test_util
模块的存在。不幸的是,我无法弄清楚如何访问这个子模块,或者随后尝试了这个test_util
类,并且文档中关于如何访问的说明非常少。
解决方案
我不相信这是可能的。simple-salesforce 包本质上是用于构建将挂钩到 Salesforce 的本机 Rest API 的代码的语法糖。
子包 simple_salesforce.tests 不是 Salesforce 测试功能的挂钩,而是 simple_salesforce 本身的测试代码。
您想要完成的测试类型仅限于 Salesforce 的本机 Database.Test 类。这些在 Apex 中构建并在 Salesforce 本身中运行。没有一种好方法可以完成您想做的测试。
您可以编写测试类以确保您的代码生成的请求格式正确,但测试它是否可以在 Salesforce 中实际生成记录需要 simple-salesforce 了解您的所有 SFDC 组织元数据、验证、权限、触发器、流程等。这将需要 simple-salesforce 几乎完全复制 salesforce - 使其变得不那么简单。
我的建议是在沙盒环境中测试您的代码,并确保在直接投入生产之前它可以在那里工作。
或者,(这纯粹是假设性的并且非常 hacky)您可以尝试将自己的挂钩构建到 Salesforce API 中以利用 Database.setSavePoint() 和 Database.rollBack() 函数。您将设置一个保存点,初始化您的批量作业,等待批量作业完成,完成您的测试以确认事情已提交,然后回滚到保存点。
推荐阅读
- android - 如何从 RxJava 中的 Single 获取返回值
- xcode - 我无法使用我的 mac pro(2018)在 Xcode 上键入“\”
- javascript - 如何使用 Typescript 在查询参数中获取对象?
- dictionary - 谷歌地图 - 如何聚集数百万个靠近的位置
- java - 如何使用 IntelliJ 解决 Scala 中的异常?
- java - Spring Boot:API访问错误:连接失败
- apache-spark - Spark .setMaster("local[*]") 与 .setMaster("local[3]") 的不同输出
- javascript - 如何在 c# 中处理来自 javascript executor(selenium) 的输出
- swift - Protocol 'FlightRoutesDataProtocol' 只能用作通用约束,因为它具有 Self 或关联的类型要求
- javascript - AngularJS:未根据 ngModel 选择单选按钮,与 ngRepeat 一起使用