我在我的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条记录。但是,在可视化强制页面中使用此查询时,查询确实有效。
有什么想法吗?
答案 0 :(得分:0)
我在测试方法中使用限制条款测试了动态SOQL,它运行正常,没有任何问题。
我建议你在断言前加上一些system.debug来检查返回的帐户列表的大小。
希望通过这种方式你会知道发生了什么。