如何使用python simple-salesforce测试插入/更新是否成功

时间:2019-04-11 23:33:04

标签: python testing simple-salesforce

tl; dr 如何使用simple-salesforce python软件包测试updateinsert的可行性?

我正在为我创建的基于简单销售的python类编写测试脚本。该类涉及sf.bulk.Object_Name__c.insert(data)sf.bulk.Object_Name__c.update(data)代码,但是在测试脚本中,我想确认插入/更新 是否 是否成功插入,而无需实际提交新记录或更改。

我看到的唯一可能建议这样做的项目是Simple-Salesforce documentation中的页面,其中指出了simple_salesforce.tests.test_util模块的存在。不幸的是,我无法弄清楚如何访问此子模块,或者后来无法尝试test_util类,并且该文档中关于如何执行此操作的说明还很少。

1 个答案:

答案 0 :(得分:1)

我认为这是不可能的。从本质上讲,sales-salesforce软件包是语法糖,用于构建将与Salesforce的本机Rest API挂钩的代码。

子程序包simple_salesforce.tests并非对Salesforce测试功能的钩子,而是simple_salesforce本身的测试代码。

您要完成的测试类型仅限于Salesforce的本机Database.Test类。这些内置于Apex中,并在Salesforce中运行。没有一个好的方法可以完成您想做的测试。

您可以编写测试类以确保代码生成的请求的格式正确,但是要测试其可以在Salesforce中实际生成记录的测试将需要简单的销售人员来了解您的所有情况SFDC组织元数据,验证,权限,触发器,流程等。这将需要对所有销售人员进行简单的销售,但要完全复制销售人员-使其变得不那么简单。

我的建议是在沙盒环境中测试您的代码,并确保在沙盒环境中可以正常运行,然后直接进入生产环境。

或者,(这纯粹是假设性的,很hacky),您可以尝试将自己的钩子建立到Salesforce API中,以利用Database.setSavePoint()和Database.rollBack()函数。您将设置保存点,初始化批量作业,等待批量作业完成,完成测试以确认已提交,然后回滚到保存点。