Activity Forums Salesforce® Discussions How to create a test class for a controller extension

  • How to create a test class for a controller extension

    Posted by Michael on August 17, 2020 at 11:02 PM

    Case object needs to lookup up the related Opportunity and display the child Opportunity Splits on the case page as a visualforce page component.
    Controller Extension:
    public class Case_ListOppSplits_Controller {
    public Case myCase;
    public Case_ListOppSplits_Controller(ApexPages.StandardController stdController){
    this.myCase = (Case)stdController.getRecord();
    }
    //initialise setController and return a list of records
    public list<Opportunity_Split__c> getOpportunity_Splits(){
    Case currentCase = [SELECT Id, Subject, Opportunity__c FROM Case WHERE Id =: ApexPages.currentPage().getParameters().get(‘id’)];
    List<Opportunity_Split__c> OppSplits = [SELECT Id, Name, Opportunity__c, Loan_Purpose__c, Loan_Type__c, Loan_Usage__c, Rate_Type__c, Repayment_Type__c, Split_Loan_Amount__c
    FROM Opportunity_Split__c
    WHERE Opportunity__c =: currentCase.Opportunity__c];
    return OppSplits;
    }
    }

    I am lost creating the test class, here is my attempt – 28% code coverage: (won’t compile in current form)
    @isTest
    public class Case_ListOppSplits_Controller_Test {

    static testMethod void testMethod1()
    {
    Case testCase = new Case();
    testCase.Subject=’Test Case’;
    testCase.Opportunity__c=’0067F00000N8vSVQAZ’;
    testCase.RecordTypeId=’0126D000000qSBcQAM’; //UA
    testCase.Status=’Assigned’;
    insert testCase;
    Test.StartTest();
    PageReference pageRef = new PageReference(‘https://omniwealth–dwr.my.salesforce.com/apex/Case_OpportunitySplits?id=’+testCase.Id); //??instantiates the page – doesn’t this run the controller?
    ApexPages.StandardController sc = new ApexPages.StandardController(testCase);
    Case_ListOppSplits_Controller extn = new Case_ListOppSplits_Controller(sc);
    List<Case_ListOppSplits_Controller> listOppSplits = extn.OppSplits; //based on code in example
    Test.StopTest();
    }
    }

    Michael replied 5 years, 9 months ago 1 Member · 0 Replies
  • 0 Replies

Log In to reply.