Salesforce 测试动态SOQL时限制不起作用

Salesforce 测试动态SOQL时限制不起作用,salesforce,apex-code,soql,Salesforce,Apex Code,Soql,我正在apex测试代码中运行一个动态SOQL查询,而LIMIT子句不起作用。但是,在生产代码中使用它时,它似乎确实起作用 该查询类似于下面的查询。我使用表单中的一些术语动态构建where子句 string query = 'SELECT name, billingstreet, billingpostalcode, phone '; query += 'FROM Account WHERE '; query += '(name LIKE \'%limited%\' OR name LIKE \'

我正在apex测试代码中运行一个动态SOQL查询,而LIMIT子句不起作用。但是,在生产代码中使用它时,它似乎确实起作用

该查询类似于下面的查询。我使用表单中的一些术语动态构建where子句

string query = 'SELECT name, billingstreet, billingpostalcode, phone ';
query += 'FROM Account WHERE ';
query += '(name LIKE \'%limited%\' OR name LIKE \'%LIMITED%\') ';
query += 'LIMIT 500';

List<Account> results = Database.query(query);

System.assert(results.size() <= 500);
这可能会失败,因为查询在测试中似乎返回了超过500条记录。但是,在VisualForce页面中使用此选项时,查询确实有效


有什么想法吗?

我在测试方法中使用限制子句测试了动态SOQL,它运行良好,没有任何问题

我建议您在断言之前放置一些system.debug来检查返回的帐户列表的大小


希望通过这种方式,您将了解发生了什么。

您可能希望尝试在Salesforce developer board上发布,因为这听起来像一个bug。谢谢问题已添加到讨论板。我已更新查询,以显示我们在查询中使用了通配符。这可能是另一个原因,当I system.debug the results.size返回6000多条记录时,尽管限制为500条。