Тестовое покрытие для тестового класса триггера показывает 53 постоянно - PullRequest
0 голосов
/ 27 февраля 2019

Я новичок в разработке Salesforce. Я написал тестовый класс для следующего триггера, охват которого составляет всего 53.Я пробовал несколько раз, добавляя и изменяя строки кода в тестовый класс, но он все еще показывает 53. Не могли бы вы помочь мне решить эту проблему?

Заранее спасибо.любая помощь будет оценена.

        trigger CaseTrigger on Case (before insert,before update, after update) 
{
    if((Trigger.isBefore && Trigger.isUpdate)||(Trigger.isBefore && Trigger.isInsert))
    {

   List<Id> contactIds = new List<Id>();
   List<Id> acctIds = new List<Id>();
   for (Case c: Trigger.new){
      if (c.EntitlementId == null && c.ContactId!= null && c.AccountId!= null){
         contactIds.add(c.ContactId);
         acctIds.add(c.AccountId);
      }
   }
   if(contactIds.isEmpty()==false || acctIds.isEmpty()==false){
      /* Added check for active entitlement */
      List <EntitlementContact> entlContacts = [Select e.EntitlementId,e.ContactId,e.Entitlement.AssetId From EntitlementContact e
                                                Where e.ContactId in:contactIds
                                                And e.Entitlement.EndDate >= Today And e.Entitlement.StartDate <= Today];
      if(entlContacts.isEmpty()==false){
         for(Case c: Trigger.new){
            if(c.EntitlementId == null && c.ContactId!= null){
               for(EntitlementContact ec:entlContacts){
                  if(ec.ContactId==c.ContactId){
                     c.EntitlementId = ec.EntitlementId;
                     if(c.AssetId==null && ec.Entitlement.AssetId!=null)
                        c.AssetId=ec.Entitlement.AssetId;
                     break;
                  }
               } // end for entitlement
            }
         } // end for case
      } else{
         List <Entitlement> entls = [Select e.StartDate, e.Id, e.EndDate, e.AccountId, e.AssetId
                                     From Entitlement e
                                     Where e.AccountId in:acctIds And e.EndDate >= Today And e.StartDate <= Today];
         if(entls.isEmpty()==false){
            for(Case c: Trigger.new){
               if(c.EntitlementId == null && c.AccountId!= null){
                  for(Entitlement e:entls){
                     if(e.AccountId==c.AccountId){
                        c.EntitlementId = e.Id;
                        if(c.AssetId==null && e.AssetId!=null)
                           c.AssetId=e.AssetId;
                        break;
                     }
                  } // end for
               }
            } // end for
         }
      }
   } // end if(contactIds.isEmpty()==false)

    }


    if(Trigger.isBefore && Trigger.isUpdate)
    {
        System.debug('entered if condition');

        for(Case c : Trigger.new)
        {
            if (c.Assignment_Group__c != trigger.oldMap.get(c.Id).Assignment_Group__c){
            System.debug('Updating logic');
            List<Group> qid = [select Id from Group where Name = : c.Assignment_Group__c and Type = 'Queue'];
              for(Group g : qid)
                {
                    c.OwnerId = g.id;
                    System.debug('updated');
                }
            }}        
    }

     if(Trigger.isBefore && Trigger.isUpdate)
    {
      for(Case c : Trigger.new)
        {   
            if(c.Assignment_Group__c=='Tech Support'||c.Assignment_Group__c=='GD-IT'||c.Assignment_Group__c=='App-Support'||c.Assignment_Group__c=='GD-RM'||c.Assignment_Group__c=='GD-DB'||c.Assignment_Group__c=='Dev-Ops'||c.Assignment_Group__c=='App-Management'||c.Assignment_Group__c=='PDT-DS-Engg'||c.Assignment_Group__c=='PDT-US-Engg')
            {
                c.Group_Manager_Email__c = 'sargware@gmail.com'; c.Escalation_Level_2_Email__c ='sargware@gmail.com'; c.Escalation_Level_3_Email__c='sargware@gmail.com';
            }
        }
    }

    if(Trigger.isBefore && Trigger.isUpdate)
    {
      for(Case c : Trigger.new)
        {   
            if(c.Internal_Impact__c == 'Low' && c.Internal_Urgency__c=='Low')
            {
                c.Priority='Planning';
            }
            if(c.Internal_Impact__c == 'High' && c.Internal_Urgency__c=='High')
            {
                c.Priority='Critical';
            }
            if(c.Status=='Pending User' || c.Status=='Pending Vendor')
            {
                c.IsStopped = True;
            }

        }

      }

    if((Trigger.isAfter && Trigger.isUpdate))
    {
    Set<Id> Ids = new Set<Id>();
    Set<Id> IdR = new Set<Id>();
    Set<Id> IdC = new Set<Id>();
    List<SC_Problem_Case_Link__c> scprblm = new List<SC_Problem_Case_Link__c>();
    List<SC_Problem_Case_Link__c> scprblmo = new List<SC_Problem_Case_Link__c>();
    List<SC_Problem_Case_Link__c> scprblmc = new List<SC_Problem_Case_Link__c>();
     for (Case cs: Trigger.new)
    {
        Case oldLead = Trigger.oldMap.get(cs.Id);

        if (cs.Status == 'Tested' && Trigger.oldMap.get(oldLead .Id).Status=='Ready for Testing')
        { 
            Ids.add(cs.Id);
        }
        if (cs.Status == 'ReOpen')
        { 
            IdR.add(cs.Id);
        }
        if (cs.Status == 'Closed')
        { 
            IdC.add(cs.Id);
        }
    }

    for (SC_Problem_Case_Link__c rateSheet: [select Id,Status__c from SC_Problem_Case_Link__c where Status__c = 'Ready for Testing' AND Case__c in :Ids])
    {

        if (rateSheet.Status__c != 'Tested') {
            rateSheet.Status__c = 'Tested';
            //rateSheet.Case__c.Status= 'Awaiting Deployment';
            scprblm.add(rateSheet);
        }

    }
    if (!scprblm.isEmpty()) {
        update scprblm;
    }


   for (SC_Problem_Case_Link__c rateSheet: [select Id,Status__c from SC_Problem_Case_Link__c where Status__c = 'Resolved' AND Case__c in :IdR])
    {
    // List<SC_Problem_Case_Link__c> accts = [Select Id, Status__c from SC_Problem_Case_Link__c where Id in : Trigger.old];

        if (rateSheet.Status__c != 'Open') {
            rateSheet.Status__c = 'Open';
            scprblmo.add(rateSheet);
        }

    }
    if (!scprblmo.isEmpty()) {
        update scprblmo;
    }


   for (SC_Problem_Case_Link__c rateSheet: [select Id,Status__c from SC_Problem_Case_Link__c where Status__c = 'Resolved' AND Case__c in :IdC])
    {

        if (rateSheet.Status__c != 'Closed') {
            rateSheet.Status__c = 'Closed';
            scprblmc.add(rateSheet);
        }

    }
    if (!scprblmc.isEmpty()) {
        update scprblmc;
    }
}
}

1 Ответ

0 голосов
/ 28 февраля 2019

Здравствуйте, SAdmin и добро пожаловать в сообщество.

Вы можете использовать консоль разработчика, чтобы проверить, какая часть вашего кода не включена в ваш тестовый класс.Каждый раз, когда вы запускаете свой тестовый класс, вы можете увидеть, какие строки кода покрыты, щелкнув раскрывающийся список Code Coverage в своем главном классе апекс.

Таким образом, вы можете видеть, что строки кода, которые покрыты тестами, синие.Строки кода, которые не покрыты красным.Строки кода, которые не требуют покрытия (например, фигурные скобки, комментарии и вызовы System.debug), остаются белыми.

Пожалуйста, проверьте это руководство, чтобы найти дополнительную информацию.

...