【问题标题】:Apex Class - System.NullPointerException: Attempt to de-reference a null objectApex 类 - System.NullPointerException:尝试取消引用空对象
【发布时间】:2020-01-09 18:19:10
【问题描述】:

我是类和触发器的新手。我正在尝试对 Salesforce 中的自定义对象运行一个简单的查询,但每次我尝试将我的类(连同测试)移至生产环境时,我都会收到“System.NullPointerException: Attempt to de-reference an null object Stack跟踪:Class.CloneListTest.testCloneListControllerFive:第 150 行,第 1 列"。我已尝试遵循我在 Google 上找到的建议,但似乎没有任何效果(可能是因为我做错了什么。)

班级:

   public class FindPT {
      @AuraEnabled
         public static List<PT_Tracker__c> getAllAccounts(){
          return [Select Id,Name ,Running_Total_Warning__c,Eligible__c,Employee__c,Running_Total__c, Accrual_Rate__c,Running_Balance_of_Accrued_Hours__c,Running_Balance_of_Approved_Hours__c from PT_Tracker__c Where Employee__c = :UserInfo.getUserID()] ; 
         }
    }

测试:

@isTest public class TestFindPT1 {
static testMethod void testAccountList ()
{ List<PT_Tracker__c> pt_trackers = new List<PT_Tracker__c>(); 
 for (Integer count = 0; count < 50; count++) 
 { pt_trackers.add(new PT_Tracker__c (Employee__c = '00561000003gg9K')); } 
 insert pt_trackers;

 Test.startTest(); 

  try{
 FindPT.getAllAccounts();       
}
    catch(Exception e){
}

 Test.stopTest();

 PT_Tracker__c ACC = [select employee__c from PT_Tracker__c LIMIT 1]; 
 System.assertEquals ( String.valueOf(ACC.employee__c) , '00561000003gg9K'); 

}
}

您能提供的任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: salesforce apex


    【解决方案1】:

    您粘贴的代码看起来与错误无关。这里没有说“CloneListTest”(这可能是从触发器间接调用的东西,但我怀疑它是另一个单元测试)。

    不要部署任何东西,进入生产环境并编译所有类,运行所有测试(如果您安装了一些托管软件包,则不必运行它们,您只关心自己的代码)。如果一切都通过 - 问题出在您尝试部署的内容上。如果失败 - 你必须检查失败的测试。也许某些业务逻辑发生了变化。也许有一个新的必填字段或验证规则,有人在生产中直接做了,而你只是一个受害者。或者,您可能没有某些安全权限,但之前进行过部署的其他用户可以做到这一点。

    【讨论】:

    • 我听从了你的建议,找到了罪魁祸首(我们甚至不再使用的对象的验证规则)。感谢您的帮助!
    • 是的,对于那些直接添加新的验证规则或必填字段的管理员来说,“可能会出什么问题”......很高兴我能指出你正确的方向。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    相关资源
    最近更新 更多