You need to sign in to do that
Don't have an account?
test coverage from 59% to above
Hi guys,
can u plz help me to increase my test coverage from 59 to 100%
The code in red lines are not covered in the test class
trigger code:-
=======================================================================================
trigger Updtcon on comments__c (before insert) {
Set<Id> sobjectSetOfIds = new Set<Id>();
Comments__c cms;
opportunity opp;
for(Comments__c cs:trigger.New){
cms=cs;
if(cms.Opportunity__c!=null && cms.Contact__c==null && cms.Finance__c==null){
sobjectSetOfIds.add(cms.Opportunity__c);
}
}
Map<Id,Opportunity>smap= new Map<Id, Opportunity>([Select id,Name,Borrower__c,(Select id,name from Finances__r) from Opportunity where Id in : sobjectSetOfIds]);
for(Comments__c s: trigger.new){
if(smap.containsKey(s.Opportunity__c)){
s.Contact__c=smap.get(s.Opportunity__c).Borrower__c;
if(smap.get(s.Opportunity__c).finances__r.size()>0&&smap.get(s.Opportunity__c).finances__r!=null){
s.Finance__c=smap.get(s.Opportunity__c).finances__r[0].id;
}
s.Comment_Created_from__c ='Opportunity ::'+ ' '+smap.get(s.Opportunity__c).Name;
s.written_by__c=UserInfo.getName();
s.Written_date__c=system.Today();
}
}
/* updating opportunity from contact object comments related list*/
for(Comments__c cs:trigger.New){
cms=cs;
if(cms.Opportunity__c==null && cms.Contact__c!=null && cms.Finance__c==null){
List<Opportunity> opportunities = [select Id, Name,Borrower__r.Name,(Select id,name,contact__c from Finances__r )from Opportunity where Borrower__r.Id = :cms.Contact__c];
for(Opportunity oppn:opportunities){
cs.Opportunity__c = oppn.id;
if(oppn.finances__r.size()>0){
cs.Finance__c=oppn.finances__r[0].id;
}
cs.Comment_Created_from__c ='Contact ::'+' '+ oppn.Borrower__r.Name;
cs.written_by__c=UserInfo.getName();
cs.Written_date__c=system.Today();
}
}
}
/* updating opportunity and contact from finance */
for(Comments__c cs:trigger.New){
cms=cs;
if(cms.Finance__c!=null & cms.Contact__c==null&& cms.Opportunity__c==null){
List<Finance__c> fc=[select id,Name,Opportunity__r.id,Opportunity__r.Borrower__r.id from Finance__c where id=:cms.Finance__c];
for(finance__c f:fc){
cs.Opportunity__c=f.opportunity__r.id;
cs.Contact__c=f.Opportunity__r.Borrower__r.id;
cs.Comment_Created_from__c ='Finance ::'+' '+ f.Name;
cs.written_by__c=UserInfo.getName();
cs.Written_date__c=system.Today();
}
}
}
=======================================================================================
test class:-
=======================================================================================
@isTest
private class Updtcon {
static testMethod void Updtcon () {
Contact C= new contact(LastName='Anil');
insert c;
list<opportunity> o=new list <opportunity>();
for(integer i=0;i<200;i++){
Opportunity oppn=new opportunity(name='Anil',StageName='prospecting',CloseDate=system.today(),Borrower__c=c.id);
o.add(oppn);
}
insert o;
// System.assertEquals(1,o.size());
Finance__c f=new finance__c(Name='payment',opportunity__c=o[0].id,Contact__c=o[0].Borrower__r.id);
insert f;
comments__c cms=new comments__c(Name='Anil',opportunity__c=o[0].id,Contact__c=o[0].Borrower__r.id);
insert cms;
}
}
============================================================================================
Thanks
Anil.B
Hi guys,
Thanks for all ur responses
I got the 100% test coverage for the trigger:-
=====================================
@isTest
private class Updtcon {
static testMethod void Updtcon () {
Contact C= new contact(LastName='Anil');
insert c;
Opportunity o=new opportunity(name='Anil',StageName='prospecting',CloseDate=system.today(),Borrower__c=c.id);
insert o;
Finance__c f=new finance__c(Name='payment',opportunity__c=o.id,Contact__c=o.Borrower__r.id);
insert f;
Comments__c cm=new comments__c(Name='Raghu',Contact__c=c.id);
insert cm;
comments__c cms=new comments__c(Name='Anil',opportunity__c=o.id);
insert cms;
Comments__c cs=new comments__c(Name='Anil',Finance__c=f.id);
insert cs;
}
}
Thanks
Anil.B
All Answers
Hi Anil,
If you click the "Run Test" button from your test class you should see your trigger somewhere in the bottom list under Code Coverage. When you click on the number next to it (the percentage of whats covered) it will highlight in red what lines you are not hitting with your test coverage.
I would start by trying to go through that yourself, and if you still cannot reach 75% minimum, paste in the [red] portions of your trigger that are not being hit so it is easier for others to help you figure out whats missing.
Cheers,
Samantha
HI samantha,
Thanks for remembering me the mistake.
the above red lines code is not getting coverage .
Thanks
Anil.B
Both uncovered blocks of code are conditionally executed 'if .. then do it '.
so if you want to have test coverage ... make sure your test data passes your condition. If you also have 'else then' code, have another test method with different data, or do updates to your data while running the same code several times.
Hi guys,
Thanks for all ur responses
I got the 100% test coverage for the trigger:-
=====================================
@isTest
private class Updtcon {
static testMethod void Updtcon () {
Contact C= new contact(LastName='Anil');
insert c;
Opportunity o=new opportunity(name='Anil',StageName='prospecting',CloseDate=system.today(),Borrower__c=c.id);
insert o;
Finance__c f=new finance__c(Name='payment',opportunity__c=o.id,Contact__c=o.Borrower__r.id);
insert f;
Comments__c cm=new comments__c(Name='Raghu',Contact__c=c.id);
insert cm;
comments__c cms=new comments__c(Name='Anil',opportunity__c=o.id);
insert cms;
Comments__c cs=new comments__c(Name='Anil',Finance__c=f.id);
insert cs;
}
}
Thanks
Anil.B