You need to sign in to do that
Don't have an account?
Kunal 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')); } } }
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