[SalesForce] How to cover pagereference method in test class

I have a method like page reference method in my class. How to cover the pagereference method in test class??? all the other methods were covered except the pagereference method.

I tried like:

PageReference pageRef = Page.myclassname;
Test.setCurrentPage(pageRef);
pageRef.getParameters().put('timezonevar',var);

but of no use;

my methods is like:

public PageReference  mymethod(){

//here using some variables which are used in the standard controller constructor....

//all the logic goes here,

return null;
}

Best Answer

If you are using custom controller

//Create test records 
PageReference pageRef = Page.myclassname;
Test.setCurrentPage(pageRef);
pageRef.getParameters().put('timezonevar',var);   
//init controller 
CustomCtrl objCtrl = new CustomCtrl();
//Call pageRef mymethod
PageReference   objPageRef =  objCtrl.mymethod();

//put system asserts

System.assertEquals (null,pageRef);

If you are using StandardController

//first create record

PageReference pageRef = Page.myclassname;
Test.setCurrentPage(pageRef);
pageRef.getParameters().put('timezonevar',var);        
// testRecord is your record
ApexPages.StandardController stc = new ApexPages.StandardController(testRecord);
//Call controller 
CustomCtrl objCtrl = new CustomCtrl(stc);
//Call pageRef mymethod
PageReference   objPageRef =  objCtrl.mymethod();
//put system asserts

System.assertEquals (null,pageRef);
Related Topic