You need to sign in to do that
Don't have an account?
John Neilan 2
Test for Visualforce Controller
Hello,
I have a custom VF controller that is very simple, but has some valudations built in upon save. I am trying to run a test to cover the controller, but the test I am running is not covering lines that I think it should. Lines 12-16, 32 & 33, and 36 & 37 are not covered, but I specifically have the criteria in my test to fire those rules. Does anyone know what I am missing to cover those lines? Thanks!
VF Controller:
Controller Test:
I have a custom VF controller that is very simple, but has some valudations built in upon save. I am trying to run a test to cover the controller, but the test I am running is not covering lines that I think it should. Lines 12-16, 32 & 33, and 36 & 37 are not covered, but I specifically have the criteria in my test to fire those rules. Does anyone know what I am missing to cover those lines? Thanks!
VF Controller:
public class VF_DealSummaryController{ public List<Deal_Summary__c> DS {get; set;} private final Opportunity opp; public VF_DealSummaryController(ApexPages.StandardController myController){ DS = new List<Deal_Summary__c>(); opp=(Opportunity)myController.getrecord(); } public Deal_Summary__c DS2 = new Deal_Summary__c(); public void DealSummary(){ DS2.Opportunity__c = opp.Id; DS2.Legal_Name__c = opp.Account.Id; DS.add(DS2); } public PageReference save() { Boolean error=false; IF(DS2.Effective_Date__c == null){ DS2.Effective_Date__c.addError('You must enter an Effective Date.'); error = true; } IF(DS2.Net_Payment_Term_Days__c == null){ DS2.Net_Payment_Term_Days__c.addError('You must enter the Net Payment terms.'); error = true; } IF(DS2.Net_Payment_Term_Days__c < 45){ DS2.Net_Payment_Term_Days__c.addError('Net Payment Terms cannot be less than 45 days.'); error = true; } IF(DS2.Auto_Renewal__c == TRUE && DS2.Notice_To_Terminate_Days__c == null){ DS2.Notice_To_Terminate_Days__c.addError('Please input the # of days notice.'); error = true; } IF (error) {return null;} insert DS; { PageReference RetPage = new PageReference('/apex/DealSummaryViewTest?id=' + DS[0].id + '#RTF'); RetPage.setRedirect(true); return RetPage; } } }
Controller Test:
public class TestDSController { public static testMethod void testMyController1() { Account acct1 = TestCreateRecords.createAcct(0); insert acct1; Opportunity opp1 = TestCreateRecords.createOppNew(acct1.Id); insert opp1; Deal_Summary__c DS1 = new Deal_Summary__c(); DS1.Opportunity__c = opp1.Id; DS1.Legal_Name__c = opp1.AccountId; DS1.Effective_Date__c = date.newinstance(2025,1,31); DS1.Net_Payment_Term_Days__c = 30; DS1.Auto_Renewal__c = TRUE; DS1.Notice_To_Terminate_Days__c = null; ApexPages.StandardController DealSumm1 = new ApexPages.standardController(opp1); VF_DealSummaryController DealSummCont1 = new VF_DealSummaryController(DealSumm1); DealSummCont1.DS.add(DS1); DealSummCont1.save(); } }
Use the updated code: Let me know, if you need any other help.
Thanks,
Neetu
All Answers
Use the updated code: Let me know, if you need any other help.
Thanks,
Neetu
Everthing seems to be perfect, is it possible to share the salesforce org login credentials, so I can have a look and help you out.
You can contact me either on my gmail id: neetu.bansal.5@gmail.com or Skype id: neetu.bansal.5
Thanks,
Neetu
I will email you. Thanks!
You are not assigning values to the DS2 object in your test class. I think that is the reason why it is not covering those lines.