You need to sign in to do that
Don't have an account?
Prady01
Test class for 100% coverage
Hello there people i have a simple class for which i am working on a test class and cant seem to figure out to pass the record id... The whole function is i have page with two page blocksections and then pass the boolean value from class to page so that for certain record type only releted page blocksection should be visible... Here is the piece of class and i have marked the lines that was not covered by test
public class cont{ public boolean boolval{get;set;} public cont(ApexPages.StandardController controller) { customobject pr = (customobject)controller.getRecord(); if(ApexPages.currentPage().getParameters().get('id')!=null) { customobject pr1 = [select id, RecordTypeId from customobject where id = :ApexPages.currentPage().getParameters().get('id')]; if (pr1.RecordTypeId == 'ID of the record type/or label') { boolval=true; } else { boolval=false; // not covered in test } } else if(ApexPages.currentPage().getParameters().get('RecordType')== 'ID of the record type/or label') boolval=true; // not covered in test else boolval=false; } }
@isTest private class contTest { static testMethod void testcont() { customobject pr = new customobject(); insert pr; PageReference pageRef = Page.custompage; pageRef .getParameters().put('id',pr.id); Test.setCurrentPageReference(pageRef); ApexPages.StandardController controller = new ApexPages.StandardController(pr); PerformanceReviewController cont = new PerformanceReviewController(controller); customobject pr1 = new customobject(); PageReference pageRef1 = Page.custompage; pageRef1 .getParameters().put('RecordTypeid','0124000000015Sq'); Test.setCurrentPageReference(pageRef1); ApexPages.StandardController controller1 = new ApexPages.StandardController(pr1); PerformanceReviewController cont1 = new PerformanceReviewController(controller1); } }
as " not covered ".... Thanks in advance if ayone would help me out... Any help would be deeply
Appreciated :smileyhappy :)
That's not a late reply - sometimes I pitch up after a year if I notice something kicking around my email folders :)
If that's the exact code, you haven't quite passed the parameters correctly - you are passing string literals rather than the field from the recordtype objects. Also, your code is looking for the parameter 'RecordType' rather than 'RecordTypeId'.
You need to remove the single quotes from the second parameter passed to put, e.g.
All Answers
The line of code that you have marked as not covered will only be executed if there is an ID passed via the URL and the record type id of the custom object doesn't equal the hardcoded record type id.
In your test class you are only passing one id to the controller, presumably one that does match the hardcoded id.
Really Sorry for the super late reply...
Hello bob_buzzard first of all thanks a lot for replying to my post :) I appreciate your help..... Actually i have two questions for you
1) the test class is syntactically and semantically correct for the apex class?? Because i tried the same things with different record type id and still i couldnt cover the code completely, For both the record type id i passed i could see the same lines not covered and i used different record types inside this parameter
..
2) And have i passed the recordy type id correctly in my test class??
Thanks in advance...
That's not a late reply - sometimes I pitch up after a year if I notice something kicking around my email folders :)
If that's the exact code, you haven't quite passed the parameters correctly - you are passing string literals rather than the field from the recordtype objects. Also, your code is looking for the parameter 'RecordType' rather than 'RecordTypeId'.
You need to remove the single quotes from the second parameter passed to put, e.g.