Apex Class - System.NullPointerException: попытка разыменовать нулевой объект - PullRequest
0 голосов
/ 09 января 2020

Я новичок в классе и триггерах. Я пытаюсь выполнить простой запрос для настраиваемого объекта в Salesforce, но каждый раз, когда я пытаюсь переместить мой класс (вместе с тестом) в производство, я получаю «System.NullPointerException: попытка отменить ссылку на нулевой объект Stack Trace: 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'); 

}
}

Любая помощь, которую вы можете предоставить, будет принята с благодарностью. Спасибо!

1 Ответ

0 голосов
/ 09 января 2020

Код, который вы вставили, выглядит не связанным с ошибкой. Ничто здесь не говорит «CloneListTest» (это может быть что-то, что вызывается косвенно из триггера, но с таким именем, я подозреваю, что это еще один модульный тест).

Не развертывать ничего, go для производства и компилировать все классы, запустите все тесты (если у вас установлены некоторые управляемые пакеты, вам не нужно их запускать, вы заботитесь только о своем собственном коде). Если все пройдет - проблема в том, что вы пытаетесь развернуть. Если это не удается - вы должны проверить провал теста. Может быть, некоторые бизнес-логики c изменились. Может быть, есть новое обязательное поле или правило проверки, кто-то сделал это прямо на производстве, а вы просто жертва. Или, может быть, у вас нет каких-либо разрешений безопасности, но другой пользователь, который выполнял развертывание, может это осуществить.

...