function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
apex_keenapex_keen 

This test method fine?

i've not concentrated on test methods much till now. Written the following for my controller. Though getting 100% coverage but not sure, if this is the best way to write. Would appreciate if some one provide tips on that. 

 

Controller class( Basically govern logic to show, list of sample cases along with check box to change their status) 

public with sharing class caseData {

public list<wrapperCaseData> selectedCases = new list<wrapperCaseData>();
    public caseData(ApexPages.StandardSetController controller) 
    {
        case[] clist = [select caseNumber, status, subject from case limit 10];
     For(case c1: clist) 
      selectedCases.add(new wrapperCaseData(c1)) ;
    }
   
 public  list<wrapperCaseData> getcaseList()
 { return selectedCases ; }
 
 public list<case> fewcases = new list<case>(); 
  public pagereference Proccessed() 
  { 
           for(wrapperCaseData w1 : selectedCases)
            { If (w1.valueSelected==true) 
                 { fewcases.add(w1.ct);
                 }
            }
            update fewcases;
        return null;    
 }
  public class wrapperCaseData
   {
      public case ct {get;set;}
      public boolean valueSelected{get;set;} 
      
     public wrapperCaseData(Case cs) 
     {  this.ct = cs;
      this.valueSelected= false; 
     }
   }
}

 Test class : 

 

public class testWrapperClass_caseData
 { public static testMethod void methodTest_case_data()
     {      list<case> c1List = new list<case>();
            case c1 = new case(origin ='web', status = 'open'); 
            case c2 = new case(origin ='email', status = 'open'); 
             c1List.add(c1);
             c1List.add(c2);
             insert c1List;
          ApexPages.StandardSetController Sc1 = new ApexPages.StandardSetController(c1List);
          caseData cd = new caseData(sc1);
          caseData.wrapperCaseData wd= new caseData.wrapperCaseData(c1); 
           
          list<caseData.wrapperCaseData> wcd = cd.getcaseList();
          pageReference p = cd.proccessed();
      } 
 }

  Specifically, how to write system.assert statement in  test class in such situation ?

 

JitendraJitendra

Hi,

 

Please have a look in below code.

 

I have added twi assert statements for example.

 

public class testWrapperClass_caseData
 { 
	public static testMethod void methodTest_case_data()
     {      
		list<case> c1List = new list<case>();
		case c1 = new case(origin ='web', status = 'open'); 
		case c2 = new case(origin ='email', status = 'open'); 
		c1List.add(c1);
		c1List.add(c2);
		insert c1List;
		
		ApexPages.StandardSetController Sc1 = new ApexPages.StandardSetController(c1List);
		caseData cd = new caseData(sc1);
		
		//Ensure that size should not be zero
		Assert.NotEquals(cd.selectedCases.size() , 0 );
		
		//Ensure that size should be 2
		Assert.Equals(cd.selectedCases.size() , 2 );
		
		caseData.wrapperCaseData wd= new caseData.wrapperCaseData(c1); 

		list<caseData.wrapperCaseData> wcd = cd.getcaseList();
		pageReference p = cd.proccessed();
      } 
 }