You need to sign in to do that
Don't have an account?
please help me---Constructor not defined when testing batchable class
I am getting the error:Constructor not defined when testing batchable class-----test class line
apex test class:
@isTest
public class testSendeMailinBatch {
Public static testMethod void m3(){
Database.QueryLocator QL;
Database.BatchableContext BC;
List<SEOX3_Client__c> CL = new List<SEOX3_Client__c>();
SendeMailinBatch smb=new SendeMailinBatch();----Error: Compile Error: Constructor not defined: [SendeMailinBatch].<Constructor>() at line
Database.QueryLocatorIterator QIT = QL.iterator();
QL = smb.start(bc);
smb.execute(BC,CL);
smb.finish(BC);
}
}
----------------------------------------------------------------------------------------------------------------------------------------------------
Batch apex class:
global class SendeMailinBatch implements Database.Batchable<sObject>,Database.Stateful
{
public list <SEOX3_Client__c> lstcl;
public string mbody;
public string msubject;
public string mfromadd;
public string mccadd;
global SendeMailinBatch(list<SEOX3_Client__c> l1, string body, string fromadd, string ccadd, string subject)
{
mbody = body;
msubject = subject;
mfromadd = fromadd;
mccadd = ccadd;
lstcl = l1;
system.debug('***ccemailcalled*****'+mccadd);
}
global Database.QueryLocator start(Database.BatchableContext BC)
{
String query = 'SELECT id,e_mail__c, Sales_Rep_E_Mail__c,CC__c,SUBJECT__c,body2__c FROM SEOX3_Client__c where id in :lstcl';
return Database.getQueryLocator(query);
}
global void execute(Database.BatchableContext BC, List<sObject> scope)
{
for(Sobject s : scope)
{
SEOX3_Client__c CM = (SEOX3_Client__c)s ;
string[] c2 = new String[] {mccadd};
if(mccadd!=NULL && mccadd.trim() != '')
{
c2=mccadd.split(',', 0);
}
else
{
c2=NULL;
}
String[] toAddresses = new String[] {cm.E_Mail__c};
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setToAddresses(toAddresses);
mail.setSubject(msubject);
mail.setCcAddresses(c2);
mail.setPlainTextBody(mbody);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail });
}
}
global void finish(Database.BatchableContext BC)
{
}
}
------------------------------------
Modify your test class as below:
Please accept it as an answer if it helps you.
-Lakshman
All Answers
Modify your test class as below:
Please accept it as an answer if it helps you.
-Lakshman
Thanks for sharing your knowledge.Its cover 96%.