function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Kunal Purohit 4Kunal Purohit 4 

How to increase code coverage of test class?

Hello, Below is my Trigger:
public class AccountTeamTriggerHandler {
    static final String Team_Role_Value = 'Technical Support Manager';
    public static void handlerIsBeforeInsertUpdate(List<AccountTeamMember> newAccountList){
        map<Id,List<AccountTeamMember>> accIdVsTeamMemberMap = new  map<Id,List<AccountTeamMember>>();
        system.debug('newAccountList.size()=>'+newAccountList.size());
        for(AccountTeamMember accountTeamObj : newAccountList){
            if(accountTeamObj.TeamMemberRole.equalsIgnoreCase(Team_Role_Value)){
                if(accIdVsTeamMemberMap.containsKey(accountTeamObj.AccountId)) {
                    List<AccountTeamMember> accTeamList=accIdVsTeamMemberMap.get(accountTeamObj.AccountId);
                    accTeamList.add(accountTeamObj);
                    accIdVsTeamMemberMap.put(accountTeamObj.AccountId,accTeamList);
                }
                else{
                    accIdVsTeamMemberMap.put(accountTeamObj.AccountId,new List<AccountTeamMember>{accountTeamObj});
                }
            }
        }
        System.debug('accIdVsTeamMemberMap=='+accIdVsTeamMemberMap);
        List<Id> oldaccountIdSet = new List<Id>();
        List<AccountTeamMember> accountTeamList =[SELECT id,
                                                         TeamMemberRole,
                                                         AccountId 
                                                  FROM AccountTeamMember 
                                                  WHERE AccountId in: accIdVsTeamMemberMap.keyset() 
                                                  AND TeamMemberRole=:Team_Role_Value];
        for(AccountTeamMember oldaccountTeamObj : accountTeamList){
            oldaccountIdSet.add(oldaccountTeamObj.AccountId);
        }
        for(Id accId:accIdVsTeamMemberMap.keyset()){
            if(accIdVsTeamMemberMap.get(accId).size()>1){
                accIdVsTeamMemberMap.get(accId)[1].addError(Label.Account_team_member_error_message);
            }
            else{
                for(AccountTeamMember accTeamObj:accIdVsTeamMemberMap.get(accId)){
                    if(oldaccountIdSet.contains(accTeamObj.AccountId)){
                        accTeamObj.addError(Label.Account_team_member_error_message);
                    }
                }
            }
        }
    }
    
 
}


I have written below test class. Its code coverage is 80%. But I want to increase it to 85%. How to increase further:

/**
* Class       : AccountTeamMemberTriggerTest
* Description : Test Class for AccountTeamMemberTrigger  
* Created By  : Divergent
* Created On  : 030521
* */
@isTest
public class AccountTeamMemberTriggerTest {
    /**
    * Method Name : setupTestData
    * Description : Test data created for this test class.
    * Created By  : Divergent
    * Created On  : 030521
    * */
 @testSetup static void setupTestData() {
        List<Account> Accounts;
        Accounts = new List<Account>();
        Account acc = new Account();
        acc.Name = 'Acme Industries';
        Accounts.add(acc);
        insert Accounts;
     
        Profile p = [SELECT Id FROM Profile WHERE Name='System Administrator']; 
        User u = new User(Alias = 'standt', Email='standarduser@testorg.com', 
            EmailEncodingKey='UTF-8', LastName='Testing', LanguageLocaleKey='en_US', 
            LocaleSidKey='en_US', ProfileId = p.Id, 
            TimeZoneSidKey='America/Los_Angeles', UserName='testmemberuser@testorg.com');
     insert u;
     
 }
     /**
    * Method Name : testCreateMultipleAccountMember
    * Description : Create 2 account team member with role Technical support manager.
    * Created By  : Divergent
    * Created On  : 030521
    * */
     @isTest
    public static void testCreateMultipleAccountMember() {
        Account acc=[Select Id from Account];
        User u=[Select Id from User where UserName='testmemberuser@testorg.com'];
        AccountTeamMember accTeam=new AccountTeamMember();
        accTeam.AccountId=acc.id;
        accTeam.UserId=u.id;
        accteam.TeamMemberRole='Technical Support Manager';
        insert accteam;
        Try{
        AccountTeamMember accTeam2=new AccountTeamMember();
        accTeam2.AccountId=acc.id;
        accTeam2.UserId=u.id;
        accteam2.TeamMemberRole='Technical Support Manager';
        insert accteam2;
        }
        catch(Exception e){
            Boolean expectedExceptionThrown =e.getMessage().contains('Technical Support Manager')? true : false;
            System.AssertEquals(expectedExceptionThrown, true);
            System.Assert(e.getMessage().contains('FIELD_CUSTOM_VALIDATION_EXCEPTION'));
        }
    }
      /**
    * Method Name : testSecondMemberAsTechnical
    * Description : Create first account with other role and then next 2 with role Technical support manager.
    * Created By  : Divergent
    * Created On  : 030521
    * */
    @isTest
    public static void testSecondMemberAsTechnical() {
        Account acc=[Select Id from Account];
        User u=[Select Id from User where UserName='testmemberuser@testorg.com'];
        List<AccountTeamMember> accountTeamMembers = new List<AccountTeamMember>();
        AccountTeamMember accTeam=new AccountTeamMember();
        accTeam.AccountId=acc.id;
        accTeam.UserId=u.id;
        accteam.TeamMemberRole='Boost Overlay Rep';
        accountTeamMembers.add(accteam);
        
        
        AccountTeamMember accTeam3=new AccountTeamMember();
        accTeam3.AccountId=acc.id;
        accTeam3.UserId=u.id;
        accteam3.TeamMemberRole='Technical Support Manager';
        accountTeamMembers.add(accteam3);
        
        //insert accountTeamMembers;
        
        Try{
            AccountTeamMember accTeam2=new AccountTeamMember();
            accTeam2.AccountId=acc.id;
            accTeam2.UserId=u.id;
            accteam2.TeamMemberRole='Technical Support Manager';
            accountTeamMembers.add(accteam2);
            
            insert accountTeamMembers;
        }
        catch(Exception e){
            Boolean expectedExceptionThrown =e.getMessage().contains('Technical Support Manager')? true : false;
            System.AssertEquals(expectedExceptionThrown, true);
            System.Assert(e.getMessage().contains('FIELD_CUSTOM_VALIDATION_EXCEPTION'));
        }
    }
    
}
PriyaPriya (Salesforce Developers) 

Hi Kunal,

Can you specify which line from the apex class is not getting cover so that according we will modify the test class code.

Regards,

Priya Ranjan