You need to sign in to do that
Don't have an account?
How to acheive code coverage for this simple triggers?
I want to know how to write test classes to execute the trigger code coverage? how should we write on what basis? for the trigger i have writtened some test classes but it wasnt giving code coverage for me. I almost executed all lines in trigger. where i am behind?
trigger createTaskForEmail on Task (before insert) {
for (Task t : trigger.new) {
if (t.status == 'Completed' && t.subject.startswith('Email:')) {
t.status = 'Completed';
t.description = t.description.substringAfter('Body:');
t.Activity_Direction__c = 'Email';
t.Activity_type__c='Email';
}
}
}
For this trigger I have writtened Test class some thing like below which gives code coverage up to 33 % only? what else i have left?
@isTest(SeeAllData = false)
private class Test_createTaskForEmail
{
static testMethod void UnitTestForException1()
{
Task ta = new task(Activity_type__c='Email' , Activity_Direction__c='Email',status = 'completed');
insert ta ;
update ta ;
}
}
Like that i have other trigger i.e
trigger UpdateEventRating on Event (before insert, before update) {
for(Event E : Trigger.new){
if(E.Rating__c=='-Excellent Meeting (committed to business within 3 weeks)'){
E.Rating_Value__c=5;
}
else
if(E.Rating__c=='-Good Meeting (Resulted in client meeting agreed to/set or booked a seminar)'){
E.Rating_Value__c=4;
}
else
if(E.Rating__c=='-Productive Meeting (Client specific illustration requested or next meeting scheduled)'){
E.Rating_Value__c=3;
}
else
if(E.Rating__c=='-Average Meeting (Agreed to continued discussions, no client specific activity)'){
E.Rating_Value__c=2;
}
else
if(E.Rating__c=='-Poor Meeting (No potential for future business, no further activity needed)'){
E.Rating_Value__c=1;
}
}
}
Test Class For this trigger is this gives 53% code coverage only
@isTest(SeeAllData = false)
private class Test_UpdateEventRating
{
static testMethod void UnitTestForException()
{
test.startTest();
Event e = new Event(ActivityDate = system.today(), ActivityDateTime = system.now(), DurationInMinutes = 2);
insert e ;
update e ;
test.stopTest();
}
}
The best way to write test classes is
1) populate the data in test class such a menner that , it will sattisfy the if else condition what you have written in code, so that autometicly it wiill cover the code coverage of your class.
2) If the trigger is written as before insert / before update , then insert and update the data in respective test classes, so that it will sattisfy the trigger criteria and cover the code coverage.
I think you have missed to populate some data in your test classes.
Regards
Sagarika Rout
SFDC Developer