I have write this class in Salesforce but not able write test class. Please anybody can help me to write test class. public without sharing class CustomizedReportController{ public String selectedReportID {get;set;} public String additionalEmails {get;set;} public Contact reportWrapper {get;set;} public String bgColor {public get; public set;} public String borderColor {public get; public set;} public String fontColor {public get; public set;} public String colHeaderColor {public get; public set;} public String styleBackgroundTemplate { public get; public set; } public boolean editStyle {get;set;} private Map<String, String> mapReports; public CustomizedReportController() { additionalEmails = ''; mapReports = new Map<String, String>(); reportWrapper = new Contact(); if(ApexPages.currentPage().getParameters().containsKey('reportId')){ selectedReportID = ApexPages.currentPage().getParameters().get('reportId'); } editStyle = false; initDefaultTheme(); updateReportWrapper(); styleBackgroundTemplate = 'background: #START_COLOR;'; styleBackgroundTemplate += 'background: -moz-linear-gradient(top, #START_COLOR 0%, #END_COLOR 100%);'; styleBackgroundTemplate += 'background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#START_COLOR), color-stop(100%,#END_COLOR));'; styleBackgroundTemplate += 'background: -webkit-linear-gradient(top, #START_COLOR 0%,#END_COLOR 100%);'; styleBackgroundTemplate += 'background: -o-linear-gradient(top, #START_COLOR 0%,#END_COLOR 100%);'; styleBackgroundTemplate += 'background: -ms-linear-gradient(top, #START_COLOR 0%,#END_COLOR 100%);'; styleBackgroundTemplate += 'filter: progid:DXImageTransform.Microsoft.gradient(startColorStr=\'#START_COLOR\', EndColorStr=\'#END_COLOR\');'; } private void initDefaultTheme(){ bgColor = 'FFFFFF'; borderColor = '000000'; fontColor = '000000'; colHeaderColor = '000000'; } public PageReference updateEditStyle(){ editStyle = true; return null; } public List<SelectOption> getAllReports() { List<SelectOption> lstOption = new List<SelectOption>(); lstOption.add(new SelectOption('','----None----')); for(Report report : [SELECT Id,Name FROM Report WHERE Format='Tabular' Order By Name Limit 100]) { lstOption.add(new SelectOption(String.valueOf(report.Id).substring(0,15),report.Name)); mapReports.put(String.valueOf(report.Id).substring(0,15),report.Name); } return lstOption; } public pageReference updateReportWrapper(){ if(selectedReportID != null && selectedReportID != ''){ List<Contact> lstreportWrap = new List<Contact>([SELECT Id, Name, email, FirstName, LastName,MobilePhone,Phone,Level__c,Title FROM Contact WHERE Id = :selectedReportID]); if(lstreportWrap.size() > 0){ reportWrapper = lstreportWrap[0]; bgColor = lstreportWrap[0].Background_Color__c; borderColor = lstreportWrap[0].Border_color__c; fontColor = lstreportWrap[0].Font_Color__c; colHeaderColor = lstreportWrap[0].Column_Header_Color__c; } else{ reportWrapper = new Contact (); } if(reportWrapper != null){ if(reportWrapper.Report_Header__c == null){ //reportWrapper.Report_Header__c = mapReports.get(selectedReportID); } if(reportWrapper.Report_Title__c == null){ reportWrapper.Report_Title__c = '<span style="font-weight:bold;font-size:22px;">'+mapReports.get(selectedReportID)+'</span>'; } if(reportWrapper.Report_Footer__c == null){ reportWrapper.Report_Footer__c = mapReports.get(selectedReportID); } } } else{ reportWrapper = new Contact (); } return null; } public PageReference saveData(){ if(selectedReportID != null && selectedReportID.trim() != ''){ reportWrapper.FirstName = bgColor; reportWrapper.LastName = borderColor; reportWrapper.Font_Color__c = fontColor; reportWrapper.Column_Header_Color__c = colHeaderColor; reportWrapper.Report_Id__c = selectedReportID.subString(0,15); upsert reportWrapper; } return null; } public void cancel(){ editStyle = false; } public PageReference sendEmail(){ PageReference pgRef = Page.ContactTestPage; pgRef.getParameters().put('reportId', selectedReportID); pgRef.setRedirect(true); Blob pdfval = pgRef.getContentAsPdf(); Messaging.EmailFileAttachment attch = new Messaging.EmailFileAttachment(); attch.setBody(pdfval); attch.setFileName('ReportPdf.pdf'); // Send an email to the Apex job's submitter notifying of job completion. Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage(); List<String> emailAddresses = getEmailAddresses(); mail.setToAddresses(emailAddresses); mail.setSubject('Report Results'); mail.setPlainTextBody('Report Pdf'); mail.setSaveAsActivity(false); mail.setFileAttachments(new List<Messaging.EmailFileAttachment>{attch}); Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail }); saveData(); return null; } public List<String> getEmailAddresses(){ List<String> emailAddresses = new List<String>(); if(reportWrapper.Id != null){ for(Contact con : [SELECT Email FROM Contact WHERE Id = :reportWrapper.Id]){ if(con.Email != null){ emailAddresses.add(con.Email); } } } if(reportWrapper.Id != null){ for(Lead ld : [SELECT Email FROM Lead WHERE Id = :reportWrapper.Id]){ if(ld.Email != null){ emailAddresses.add(ld.Email); } } } if(reportWrapper.Id != null){ for(User usr : [SELECT Email FROM User WHERE Id = :reportWrapper.Id]){ if(usr.Email != null){ emailAddresses.add(usr.Email); } } } if(!String.IsBlank(additionalEmails)){ for(String str : additionalEmails.split(',')){ emailAddresses.add(str.trim()); } } return emailAddresses; } } My current test class looks like: @isTest public class TestReportParser{ public TestReportParser(){ } public static testMethod void MyTestReportParser(){ string jsonString = '{"currency" : "ABC"}'; List<String> mytestData; ReportParser rpt = new ReportParser(); ReportParser rp = new ReportParser(jsonString); String mydata = rp.getHtmlTable(); mytestData = rp.getHeader(); } }