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

发布于 2024-09-28 18:41:46 字数 514 浏览 10 评论 0原文

我在我的 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 条记录。但是,在视觉强制页面中使用此查询时,该查询确实有效。

有什么想法吗?

I am running a Dynamic SOQL query in my apex test code, and the LIMIT clause is not working. It does however seem to work when using it in the production code.

The Query is similar to below. I dynamically build up the where clause using some terms from a form.

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);

This can fail as the query seems to return well over 500 records in the test. The query does work however when using this in a visual force page.

Any thoughts?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

飘然心甜 2024-10-05 18:41:46

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

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

希望通过这种方式您能了解正在发生的事情。

I tested dynamic SOQL in the test method with a limit clause and it worked fine without any issues.

I suggest you to put some system.debug prior to assertion to check the size of the accounts list returned.

Hope this way you will come to know whats happening.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文