gpt4 book ai didi

automated-tests - 有没有办法验证 Salesforce.com 的 SOQL 查询的语法而不执行它?

转载 作者:行者123 更新时间:2023-12-05 01:32:45 24 4
gpt4 key购买 nike

我正在编写一个 API,它将非技术用户执行的操作转换为 Salesforce.com SOQL 'SELECT' , 'UPSERT' , 和 'DELETE'声明。是否有任何资源、库等可以验证生成的 SOQL 的语法?我是公司中唯一一个对 SOQL 有任何经验的人,所以我很想将它放入一组自动化测试中,以便其他增强(或修复)SOQL 生成算法的开发人员知道它是否仍然正常运行。

我知道这里的一种解决方案是进行这些集成测试。但是,出于三个原因,我宁愿避免这种情况:

  • 我需要为测试维护另一个 Salesforce.com 帐户,这样我们就不会超过 API 请求上限。
  • 每当 Salesforce.com 出现连接问题时,我们都会追踪误报。
  • 那些没有经验的其他开发人员可能需要弄清楚如何在 DML 操作测试失败后清理测试 Salesforce.com 实例(这实际上意味着我需要在发生这种情况时清理实例)。
  • 最佳答案

    我找到了另一种方法来做到这一点。

    Salesforce.com 在 Backus-Noir Form 中发布了他们的 SOQL 符号(BNF)在这里:
    http://www.salesforce.com/us/developer/docs/api90/Content/sforce_api_calls_soql_bnf_notation.htm

    这意味着您可以使用 BNF 感知语言识别工具来解析 SOQL。最常用的工具之一,ANTLR ,这样做并且是免费的。按照 ANTLR 示例,将 SOQL 语法传递到其语法编译器,以获取所需语言(C#、Java、Python 等)的词法分析器和解析器。然后,您可以将要验证的实际 SOQL 语句传递到 Lexer,然后将您的 Lexer token 传递到您的解析器,以分解 SOQL 语句。如果您的 Lexer 或 Parser 失败,则您的 SOQL 无效。

    关于automated-tests - 有没有办法验证 Salesforce.com 的 SOQL 查询的语法而不执行它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9056977/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com