- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个 API,它将非技术用户执行的操作转换为 Salesforce.com SOQL 'SELECT'
, 'UPSERT'
, 和 'DELETE'
声明。是否有任何资源、库等可以验证生成的 SOQL 的语法?我是公司中唯一一个对 SOQL 有任何经验的人,所以我很想将它放入一组自动化测试中,以便其他增强(或修复)SOQL 生成算法的开发人员知道它是否仍然正常运行。
我知道这里的一种解决方案是进行这些集成测试。但是,出于三个原因,我宁愿避免这种情况:
最佳答案
我找到了另一种方法来做到这一点。
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/
我是一名优秀的程序员,十分优秀!