You need to sign in to do that
Don't have an account?
Javier Esquivel
can you help me with test class for a email Messaging
im trying to do the test class for this code
public class Claseprogramadausuario {
public static void obtenerinfo(){
List<User> nlist = [SELECT Id, Username, FirstName, LastName, EmployeeNumber, UserRole.Name, Profile.Name, CreatedDate, LastModifiedDate, LastLoginDate, isActive FROM User WHERE Profile.Name != 'SelfService'];
string header = 'Id, Username , FirstName, LastName, EmployeeNumber, UserRole.Name, Profile.Name, Created Date, LastModifiedDate, LastLoginDate, isActive \n';
string finalstr = header ;
for(User u: nlist)
{
string recordString = u.id+','+u.Username +',' + u.FirstName +','+ u.LastName +','+ u.EmployeeNumber+','+ u.UserRole.name +','+ u.profile.name +','+ u.CreatedDate +','+ u.LastModifiedDate +','+ u.LastLoginDate +','+ u.IsActive +'\n';
finalstr = finalstr +recordString;
}
Messaging.EmailFileAttachment csvAttc = new Messaging.EmailFileAttachment();
blob csvBlob = Blob.valueOf(finalstr);
string csvname= 'Userinfo.csv';
csvAttc.setFileName(csvname);
csvAttc.setBody(csvBlob);
Messaging.SingleEmailMessage correo = new Messaging.SingleEmailMessage();
correo.toAddresses = new String[] {'javierandoni@gmail.com', 'dlramirez@izzi.mx'};
correo.subject = 'Clase programada test';
correo.plainTextBody = 'Clase programada test';
Messaging.SingleEmailMessage[] correos = new List<Messaging.SingleEmailMessage> {correo};
correo.setPlainTextBody('Account CSV ');
correo.setFileAttachments(new Messaging.EmailFileAttachment[]{csvAttc});
Messaging.SendEmailResult[] results = Messaging.sendEmail(correos);
if (results[0].success)
{
System.debug('The email was sent successfully.');
} else
{
System.debug('The email failed to send: ' + results[0].errors[0].message);
}
}
}
And the test class im trying to do is this
// Test Class
@IsTest
Public class ClaseprogramadausuarioTest {
@isTest static void testenviomail(){
string pri= Claseprogramadausuario.obtenerinfo();
System.assertEquals('The email was sent successfully.', pri);
}
}
but i get this message: Illegal assignment from void to String.
public class Claseprogramadausuario {
public static void obtenerinfo(){
List<User> nlist = [SELECT Id, Username, FirstName, LastName, EmployeeNumber, UserRole.Name, Profile.Name, CreatedDate, LastModifiedDate, LastLoginDate, isActive FROM User WHERE Profile.Name != 'SelfService'];
string header = 'Id, Username , FirstName, LastName, EmployeeNumber, UserRole.Name, Profile.Name, Created Date, LastModifiedDate, LastLoginDate, isActive \n';
string finalstr = header ;
for(User u: nlist)
{
string recordString = u.id+','+u.Username +',' + u.FirstName +','+ u.LastName +','+ u.EmployeeNumber+','+ u.UserRole.name +','+ u.profile.name +','+ u.CreatedDate +','+ u.LastModifiedDate +','+ u.LastLoginDate +','+ u.IsActive +'\n';
finalstr = finalstr +recordString;
}
Messaging.EmailFileAttachment csvAttc = new Messaging.EmailFileAttachment();
blob csvBlob = Blob.valueOf(finalstr);
string csvname= 'Userinfo.csv';
csvAttc.setFileName(csvname);
csvAttc.setBody(csvBlob);
Messaging.SingleEmailMessage correo = new Messaging.SingleEmailMessage();
correo.toAddresses = new String[] {'javierandoni@gmail.com', 'dlramirez@izzi.mx'};
correo.subject = 'Clase programada test';
correo.plainTextBody = 'Clase programada test';
Messaging.SingleEmailMessage[] correos = new List<Messaging.SingleEmailMessage> {correo};
correo.setPlainTextBody('Account CSV ');
correo.setFileAttachments(new Messaging.EmailFileAttachment[]{csvAttc});
Messaging.SendEmailResult[] results = Messaging.sendEmail(correos);
if (results[0].success)
{
System.debug('The email was sent successfully.');
} else
{
System.debug('The email failed to send: ' + results[0].errors[0].message);
}
}
}
And the test class im trying to do is this
// Test Class
@IsTest
Public class ClaseprogramadausuarioTest {
@isTest static void testenviomail(){
string pri= Claseprogramadausuario.obtenerinfo();
System.assertEquals('The email was sent successfully.', pri);
}
}
but i get this message: Illegal assignment from void to String.
You actual method don't have any return data it's void method so you are getting this error:
string pri= Claseprogramadausuario.obtenerinfo(); ==> Claseprogramadausuario.obtenerinfo();
Please try the below test class:
Thanks,
Maharajan.C
All Answers
You actual method don't have any return data it's void method so you are getting this error:
string pri= Claseprogramadausuario.obtenerinfo(); ==> Claseprogramadausuario.obtenerinfo();
Please try the below test class:
Thanks,
Maharajan.C