测试动态 SOQL 时限制不起作用
我在我的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我在带有限制子句的测试方法中测试了动态 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.