You need to sign in to do that
Don't have an account?
Urgent - Testing nested class
Hi,
I have a nested class like below. How do I write test script which covers the sub class.
I can't increase the overall test % without adding tests for these 2 sub classes.
Thanks.
public class Trips{
Private List <MonthlyTrip> lstJanTrips=new List <MonthlyTrip>();
Private List <MonthlyTripArray> lstAllTrips=new List <MonthlyTripArray>();
//Constructor of the class
Public Trips(){
}
//Create All Trips array
Public List <MonthlyTripArray> getAllTrips(){
String stOldCity='';
String stJanAnalysts='';
String stFebAnalysts='';
String stMarAnalysts='';
String stAprAnalysts='';
MonthlyTripArray ObjAllMonthlyTrip=new MonthlyTripArray (stOldCity,StJanAnalysts,StFebAnalysts,StMarAnalysts,StAprAnalysts);
lstAllTrips.Add (ObjAllMonthlyTrip);
return lstAllTrips;
}
//****************************************************
//Create Trips in Jan list
Public List <MonthlyTrip> getJanTrips(){
String stOldCity='';
String stAnalysts='';
MonthlyTrip ObjMonthlyTrip=new MonthlyTrip(stOldCity, StAnalysts);
lstJanTrips.Add (ObjMonthlyTrip);
return lstJanTrips;
}
//*********** First sub class *****************************
Class MonthlyTripArray{
Public String CityName{get; set;}
Public String JanAnalysts{get; set;}
Public String FebAnalysts{get; set;}
Public String MarAnalysts{get; set;}
Public String AprAnalysts{get; set;}
Public MonthlyTripArray(String Cn, String JAn, String FAn,String MAn, String AAn){
CityName = Cn;
JanAnalysts=JAn;
FebAnalysts=FAn;
MarAnalysts=MAn;
AprAnalysts=AAn;
}
}
//*********** Second sub class *****************************
Class MonthlyTrip{
Public String CityName{get; set;}
Public String Analysts{get; set;}
Public MonthlyTrip(String Cn, String An){
CityName = Cn;
Analysts=An;
}
}
}
Hi,
Try the below code for class as well as test method with 100% coverage:
public class Trips{
Private List <MonthlyTrip> lstJanTrips=new List <MonthlyTrip>();
Private List <MonthlyTripArray> lstAllTrips=new List <MonthlyTripArray>();
//Constructor of the class
Public Trips(){
}
//Create All Trips array
Public List <MonthlyTripArray> getAllTrips(){
String stOldCity='';
String stJanAnalysts='';
String stFebAnalysts='';
String stMarAnalysts='';
String stAprAnalysts='';
MonthlyTripArray ObjAllMonthlyTrip=new MonthlyTripArray (stOldCity,StJanAnalysts,StFebAnalysts,StMarAnalysts,StAprAnalysts);
lstAllTrips.Add (ObjAllMonthlyTrip);
return lstAllTrips;
}
//****************************************************
//Create Trips in Jan list
Public List <MonthlyTrip> getJanTrips(){
String stOldCity='';
String stAnalysts='';
MonthlyTrip ObjMonthlyTrip=new MonthlyTrip(stOldCity, StAnalysts);
lstJanTrips.Add (ObjMonthlyTrip);
return lstJanTrips;
}
//*********** First sub class *****************************
Class MonthlyTripArray{
Public String CityName{get; set;}
Public String JanAnalysts{get; set;}
Public String FebAnalysts{get; set;}
Public String MarAnalysts{get; set;}
Public String AprAnalysts{get; set;}
Public MonthlyTripArray(String Cn, String JAn, String FAn,String MAn, String AAn){
CityName = Cn;
JanAnalysts=JAn;
FebAnalysts=FAn;
MarAnalysts=MAn;
AprAnalysts=AAn;
}
}
//*********** Second sub class *****************************
Class MonthlyTrip{
Public String CityName{get; set;}
Public String Analysts{get; set;}
Public MonthlyTrip(String Cn, String An){
CityName = Cn;
Analysts=An;
}
}
public static testMethod void TestCode()
{
Trips t=new Trips();
t.getAllTrips();
t.getJanTrips();
}
}
All Answers
call
getAllTrips()
and
getJanTrips()
in your test method.
i.e. trips t = New trips();
t.getAlltrips();
Of course this assumes there are records present...remember in api 24 you have to create them or use seeAllData=true
Thanks for the suggestion.
I have already have these lines in my test class. My issue here is that the test % of this class is around 40% and the nested classes are marked RED.
How do I turn these RED to BLUE, I mean test success.
Thanks.
Hi,
Try the below code for class as well as test method with 100% coverage:
public class Trips{
Private List <MonthlyTrip> lstJanTrips=new List <MonthlyTrip>();
Private List <MonthlyTripArray> lstAllTrips=new List <MonthlyTripArray>();
//Constructor of the class
Public Trips(){
}
//Create All Trips array
Public List <MonthlyTripArray> getAllTrips(){
String stOldCity='';
String stJanAnalysts='';
String stFebAnalysts='';
String stMarAnalysts='';
String stAprAnalysts='';
MonthlyTripArray ObjAllMonthlyTrip=new MonthlyTripArray (stOldCity,StJanAnalysts,StFebAnalysts,StMarAnalysts,StAprAnalysts);
lstAllTrips.Add (ObjAllMonthlyTrip);
return lstAllTrips;
}
//****************************************************
//Create Trips in Jan list
Public List <MonthlyTrip> getJanTrips(){
String stOldCity='';
String stAnalysts='';
MonthlyTrip ObjMonthlyTrip=new MonthlyTrip(stOldCity, StAnalysts);
lstJanTrips.Add (ObjMonthlyTrip);
return lstJanTrips;
}
//*********** First sub class *****************************
Class MonthlyTripArray{
Public String CityName{get; set;}
Public String JanAnalysts{get; set;}
Public String FebAnalysts{get; set;}
Public String MarAnalysts{get; set;}
Public String AprAnalysts{get; set;}
Public MonthlyTripArray(String Cn, String JAn, String FAn,String MAn, String AAn){
CityName = Cn;
JanAnalysts=JAn;
FebAnalysts=FAn;
MarAnalysts=MAn;
AprAnalysts=AAn;
}
}
//*********** Second sub class *****************************
Class MonthlyTrip{
Public String CityName{get; set;}
Public String Analysts{get; set;}
Public MonthlyTrip(String Cn, String An){
CityName = Cn;
Analysts=An;
}
}
public static testMethod void TestCode()
{
Trips t=new Trips();
t.getAllTrips();
t.getJanTrips();
}
}
Thanks for the code.
I had it all there except one important thing,...I had written a separate test class and was trying to call methods from this class. When I moved my test functions inside the main class...everything worked like a charm!!
Thanks again.