在salesforce上准备测试数据时查询太多

时间:2015-12-11 07:42:21

标签: unit-testing salesforce apex-code apex

在将我的顶点代码部署到生产环境时,我发生了一些“太多的SOQL查询:101”。经过一番调查,我发现这是由User对象和Account对象的触发器中的查询引起的。当我准备一些测试数据并将它们插入数据库时​​,触发器会多次工作和查询。我的测试代码示例是这样的(这只是一个示例,实际上我需要准备更多的对象)。除此之外,我的触发器中的所有查询都不是多余的,因此我无法更改触发器以减少查询。

@isTest(SeeAllData=true)
    static void testMethod() {
        User user = testFixture.prepareUser();
        insert user;    //57 queries
        Account acc = testFixture.prepareAccount();
        insert acc;   //50 queries
   Test.startTest();
    //my test code
   Test.stopTest();
}

所以我的问题是如何避免这个错误?我已经搜索了很多,我在循环中没有任何查询。已经尝试使用'startTest'来重置查询计数器,但它仍然无法解决我的问题。我想知道是否有一种方法可以在准备数据或其他任何方式解决我的问题时禁用触发器?

我尽力表达我的问题,如果仍然无法理解,请告诉我。

任何想法都表示赞赏。

0 个答案:

没有答案