You need to sign in to do that
Don't have an account?
Ashok S 7
how can i check the if else condition
hai,
when i am test class to the controller it is covering only if part and not covering the else part
controller
---------------------
public class customAccountlistcontroller
{
public ApexPages.StandardSetController ssc{get; private set;}
public list<SelectOption> sizeOptions{get;private set;}
public String chosenSize{get;set;}
public CustomAccountlistcontroller()
{
ssc = new ApexPages.StandardSetController([select id,Name,Rating,NumberOfEmployees from Account limit 500]);
sizeOptions = new List<SelectOption>();
{
new SelectOption('small','small');
new SelectOption('medium','medium');
new SelectOption('large','large');
}
chosenSize = 'small';
//ApplyFilter();
}
public List<Account> GetAccounts()
{
return (List<Account>)ssc.GetRecords();
}
public Pagereference ApplyFilter()
{
String query = 'select id,name,Rating,NumberOfEmployees from Account where';
if(chosenSize == 'small')
{
query += 'Employees <=100';
}
else if(chosenSize == 'medium')
{
query += 'Employees > 100 and Employees <= 500';
}
else
{
query += 'Employees > 500';
}
query += 'limit 500';
ssc = new ApexPages.StandardSetController(Database.Query(query));
return null;
}
}
testclass
----------------------
@isTest
public class Test_customAccountlistcontroller
{
public static testmethod void testcustomaccount()
{
//using the pagereference
pagereference pg = page.Advanced_Filtering_vf_page;
test.setCurrentPage(pg);
//calling the controller into the testclass
customAccountlistcontroller cac = new customAccountlistcontroller();
//calling the methods in the testclass
cac.GetAccounts();
cac.ApplyFilter();
}
}
when i run the testclass it is covering the if part but did not cover else part.
following image display the which part is covering and which part is not cover
when i am test class to the controller it is covering only if part and not covering the else part
controller
---------------------
public class customAccountlistcontroller
{
public ApexPages.StandardSetController ssc{get; private set;}
public list<SelectOption> sizeOptions{get;private set;}
public String chosenSize{get;set;}
public CustomAccountlistcontroller()
{
ssc = new ApexPages.StandardSetController([select id,Name,Rating,NumberOfEmployees from Account limit 500]);
sizeOptions = new List<SelectOption>();
{
new SelectOption('small','small');
new SelectOption('medium','medium');
new SelectOption('large','large');
}
chosenSize = 'small';
//ApplyFilter();
}
public List<Account> GetAccounts()
{
return (List<Account>)ssc.GetRecords();
}
public Pagereference ApplyFilter()
{
String query = 'select id,name,Rating,NumberOfEmployees from Account where';
if(chosenSize == 'small')
{
query += 'Employees <=100';
}
else if(chosenSize == 'medium')
{
query += 'Employees > 100 and Employees <= 500';
}
else
{
query += 'Employees > 500';
}
query += 'limit 500';
ssc = new ApexPages.StandardSetController(Database.Query(query));
return null;
}
}
testclass
----------------------
@isTest
public class Test_customAccountlistcontroller
{
public static testmethod void testcustomaccount()
{
//using the pagereference
pagereference pg = page.Advanced_Filtering_vf_page;
test.setCurrentPage(pg);
//calling the controller into the testclass
customAccountlistcontroller cac = new customAccountlistcontroller();
//calling the methods in the testclass
cac.GetAccounts();
cac.ApplyFilter();
}
}
when i run the testclass it is covering the if part but did not cover else part.
following image display the which part is covering and which part is not cover
You need create test #2 for coverate if statement and in this test you need set chosenSize as 'medium'
As a common practice, if your question is answered, please choose 1 best answer.
But you can give every answer a thumb up if that answer is helpful to you.
Thanks,
Alex
You need add cases for 'medium' and 'large' also. Please try the below class and let me know if you face any issues.
Thanks
Jit