如何测试 insert/update 是否会通过 python simple-salesforce 成功
How to test if insert/update will succeed with python simple-salesforce
tl;dr 我如何使用 simple-salesforce python 包测试 update
或 insert
的可行性?
我正在为我创建的基于 python class 的简单 salesforce 编写测试脚本。 class 涉及 sf.bulk.Object_Name__c.insert(data)
和 sf.bulk.Object_Name__c.update(data)
代码,但在测试脚本中我想确认 insert/update 会 插入成功与否,没有实际提交新记录或更改。
我看到的唯一表明这可能是可能的项目是 Simple-Salesforce documentation 中的一个页面,指出 simple_salesforce.tests.test_util
模块的存在。不幸的是,我无法弄清楚如何访问这个子模块,或者随后尝试 test_util
class,并且文档中关于如何这样做的说明非常少。
我不相信这是可能的。 simple-salesforce 包本质上是用于构建代码的语法糖,这些代码将挂接到 Salesforce 的本机 Rest API。
子包 simple_salesforce.tests 不是 Salesforce 测试功能的挂钩,而是 simple_salesforce 本身的测试代码。
您希望完成的测试类型仅限于 Salesforce 的原生 Database.Test class。这些是在 Apex 中构建的,并且 运行 在 Salesforce 本身中。没有一个很好的方法来完成你想做的测试。
您可以编写测试 classes 以确保您的代码生成的请求格式正确,但测试它 是否可以 在 Salesforce 中实际生成记录将需要simple-salesforce 了解您的所有 SFDC 组织元数据、验证、权限、触发器、流程等。这将需要 simple-salesforce 几乎完全复制 salesforce - 使其变得不那么简单。
我的建议是在沙盒环境中测试您的代码,并确保它在直接进入生产环境之前可以正常工作。
或者,(这纯粹是假设且相当老套)您可以尝试在 Salesforce API 中构建自己的挂钩以利用 Database.setSavePoint() 和 Database.rollBack() 函数。您将设置一个保存点,初始化您的批量作业,等待批量作业完成,完成您的测试以确认事情已提交,然后回滚到保存点。
tl;dr 我如何使用 simple-salesforce python 包测试 update
或 insert
的可行性?
我正在为我创建的基于 python class 的简单 salesforce 编写测试脚本。 class 涉及 sf.bulk.Object_Name__c.insert(data)
和 sf.bulk.Object_Name__c.update(data)
代码,但在测试脚本中我想确认 insert/update 会 插入成功与否,没有实际提交新记录或更改。
我看到的唯一表明这可能是可能的项目是 Simple-Salesforce documentation 中的一个页面,指出 simple_salesforce.tests.test_util
模块的存在。不幸的是,我无法弄清楚如何访问这个子模块,或者随后尝试 test_util
class,并且文档中关于如何这样做的说明非常少。
我不相信这是可能的。 simple-salesforce 包本质上是用于构建代码的语法糖,这些代码将挂接到 Salesforce 的本机 Rest API。
子包 simple_salesforce.tests 不是 Salesforce 测试功能的挂钩,而是 simple_salesforce 本身的测试代码。
您希望完成的测试类型仅限于 Salesforce 的原生 Database.Test class。这些是在 Apex 中构建的,并且 运行 在 Salesforce 本身中。没有一个很好的方法来完成你想做的测试。
您可以编写测试 classes 以确保您的代码生成的请求格式正确,但测试它 是否可以 在 Salesforce 中实际生成记录将需要simple-salesforce 了解您的所有 SFDC 组织元数据、验证、权限、触发器、流程等。这将需要 simple-salesforce 几乎完全复制 salesforce - 使其变得不那么简单。
我的建议是在沙盒环境中测试您的代码,并确保它在直接进入生产环境之前可以正常工作。
或者,(这纯粹是假设且相当老套)您可以尝试在 Salesforce API 中构建自己的挂钩以利用 Database.setSavePoint() 和 Database.rollBack() 函数。您将设置一个保存点,初始化您的批量作业,等待批量作业完成,完成您的测试以确认事情已提交,然后回滚到保存点。