You need to sign in to do that
Don't have an account?
William Keam
Need help to test one more line of apex
Hello,
I have an apex class which I am using to calculate the average age time taken to resolve cases. I have written a test class for the code but I am stuck at 93% coverage, any help would be greatly appreciated!
Heres my apex class:
Here is my test class:
Thanks in advance for all the help!!
I have an apex class which I am using to calculate the average age time taken to resolve cases. I have written a test class for the code but I am stuck at 93% coverage, any help would be greatly appreciated!
Heres my apex class:
public class avgCase{ private final Case cas; public double avrgTime{public get; public set;} public double count{public get; public set;} public double d{public get; public set;} public avgCase(ApexPages.StandardController controller) { this.cas = (Case)Controller.getRecord(); List <case> allCase=[Select Case_Duration__c from case where accountid=:cas.accountid and status='Resolved']; double d=0.0; integer count=0; if(allCase.size()>0){ for(case c: allCase) { d+=c.Case_Duration__c; count++; } } if(count>0){ avrgTime=d/count; } else { avrgTime=0; //This is the line which is not getting code coverage } } }
Here is my test class:
@isTest public class avgCase_test{ static testMethod void testAvgCase() { Account a = new Account(name='TestAcc',Reseller_Id__c=15243, Virtualisation_Id__c=1); insert a; Case c = new Case(subject='Test Case',AccountID=a.id,status='Resolved'); insert c; ApexPages.StandardController sc = new ApexPages.standardController(c); avgCase testMe = new avgCase(sc); testMe.d=1; testMe.count=1; testMe.avrgTime=1; ApexPages.currentPage(); System.AssertEquals(1, testme.count); System.AssertEquals(testme.avrgTime, 1); } }
Thanks in advance for all the help!!
What you COULD do would be to set "avrgTime=0;" OUTSIDE of the else conditional - put it right above the if conditional (line 23) and just remove the else completely - so avrgTIme is always 0 unless the "count>0" is met.
All Answers
What you COULD do would be to set "avrgTime=0;" OUTSIDE of the else conditional - put it right above the if conditional (line 23) and just remove the else completely - so avrgTIme is always 0 unless the "count>0" is met.