You need to sign in to do that
Don't have an account?
csrsak
Help me to create trigger Test Class
Hi Folks,
Please help me to write Test class for Trigger Class below.
trigger TriggerAfterLeadConversion on Lead (after update)
{
for(Lead lead:Trigger.new)
{
if (Lead.IsConverted)
{
Contact con = [SELECT Id FROM Contact WHERE Contact.Id = :lead.ConvertedContactId]; con.Birthdate = lead.Date_Of_Birth__c; con.Email=lead.Email; update con;
}
}
}
Thanks in advance
Thanks & Regards
Srinivas
I suggest you figured out how to write tests because I saw a recent posting from you that discusses a test class...
But why do you wrote a trigger for this anyway? It looks like you can achieve the same by "field mapping" under "customize" -> "leads" -> "fields".
//Hannes
Hey
// Create your contact
Contact c = new Contact;
// Create at least 2 Leads, one that is converted and one that isn't
Lead l1 = ...;
Lead l2 = ...;
l1.convertedleadcontactid = c.id;
insert l1;
insert l2;
// Change something in each lead
l1.name = ...;
l2.name = ...;
update l1;
update l2;
// Check that the contact has been update by the trigger
System.assert(contact.email==l1.email);
*Depending on the amount of data in your system, I would delete all contacts and leads within your test first. Note: This does not permanently delete data, only for the duration of the test, and give you control over the test environment. eg. before all the previous code write,
List<Lead> leads = [SELECT id FROM lead];
List<Contact> contact = [SELECT id FROM contact];
delete leads;
delete contact;
Wes
Hi Wes,
Thanks for quick reply,
i wrote the trigger test class is like,
/**
Test class for TriggerAfterLeadConversion
*/
@isTest
private class TriggerAfterLeadConversionTest
{
static testMethod void myUnitTest()
{
List<Lead> leads = [SELECT id FROM lead];
List<Contact> contact = [SELECT id FROM contact];
Contact c=new Contact(firstName='Venkata',lastname='Rao',Birthdate=Date.newInstance(1980,10,11),Email='venkat.rao@gmail.com');
insert c;
Lead le1=new Lead(Date_of_Birth__c=Date.newInstance(1980,10,11), Email='venkat.rao@gmail.com', Company='quin',LastName='Rao');
Lead le2=new Lead(Date_of_Birth__c=Date.newInstance(1983,04,20), Email='venkat.ch@viz.com', Company='abc soft',LastName='Rao');
insert le1;
insert le2;
le1.FirstName='ramu';
le2.FirstName='siva';
update le1;
update le2;
System.assert(c.Email==le1.email);
if(le1.ConvertedContactId=='0038000000j0qcV')
{
Contact con = [SELECT Id FROM Contact WHERE Contact.Id ='0038000000j0qcV'];
con.Birthdate = le1.Date_Of_Birth__c;
con.Email=le1.Email;
update con;
}
delete leads;
}
}
when i run the above test class, it is showing 4 lines not tested, 33% coverd,
the trigger is,
{
for(Lead lead:Trigger.new){
if (Lead.IsConverted){
Contact con = [SELECT Id FROM Contact WHERE Contact.Id = :lead.ConvertedContactId];con.Birthdate = lead.Date_Of_Birth__c;
con.Email=lead.Email;
update con;}
}
}
the red colors lines in the trigger are not covered,
can you please help me to coverage of 75% of the above trigger?
Thanks in Advance,
Thanks and Regards,
Srinivas
Hey
One of your leads needs to be 'converted'. I don't know leads that well but looking at the schema it seems that you'd need to set the 'isConverted' field on one of the leads to true when you insert it. Give that a bash..
Wes