function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Mark Wieland (RF Administrator)Mark Wieland (RF Administrator) 

Help writing a simple test class for my simple trigger

Hi all,

I wrote a fairly simple trigger based on a requirement we have within our company. I am not a code developer, but found a simple example on these forums to modify and it does exactly what I want it to do. However, to bring it to production, I need to create a test class for it and was wondering if you can help me create it. 

This is the trigger I would need a test class for. I would be very grateful if you can help me get the test class created, as we want to move this into production as soon as possible. 
 
trigger DLL_Automation_Task_Trigger on BMCServiceDesk__Task__c (Before update, Before insert) {


     List< BMCServiceDesk__Change_Request__c> lstChangeRequestToUpdate = new List<BMCServiceDesk__Change_Request__c>();
     Map<Id,BMCServiceDesk__Change_Request__c>changeMP;
     for(BMCServiceDesk__Task__c tskobj:trigger.new)
     {
        if((tskobj.BMCServiceDesk__taskType__c=='Automation') && (tskobj.BMCServiceDesk__FKStatus__c=='a2924000000RkGyAAK'))
        {
            lstChangeRequestToUpdate.add(new BMCServiceDesk__Change_Request__c(Id = tskobj.BMCServiceDesk__FKChange__c,
                                                    Automation_Stop__c=true));
        }
     }
     update lstChangeRequestToUpdate;

 
Ajay K DubediAjay K Dubedi
Hi Mark,
Please check the field type of BMCServiceDesk__FKStatus__c field of BMCServiceDesk__Task__c SObject, if this is of text type then use this test class this will cover 100% of your trigger:
@isTest
private class DLL_Automation_Task_Trigger_Test {

    @isTest static void testDLL_Automation_Task() {
        BMCServiceDesk_Change_Request__c BMCCRObj = new BMCServiceDesk_Change_Request__c();
        BMCCRObj.Name = 'Test';
        BMCCRObj.Automation_Stop__c = false;
        insert BMCCRObj;
        
        BMCServiceDesk_Task__c obj = new BMCServiceDesk_Task__c();
        obj.Name = 'Test';
        obj.BMCServiceDesk_taskType__c = 'Automation';
        obj.BMCServiceDesk_FKStatus__c = 'a2924000000RkGyAAK';
        obj.BMCServiceDesk_FKChange__c = BMCCRObj.Id;
        insert obj;
    }
}
And if BMCServiceDesk__FKStatus__c  field is tpye of lookup then you cannot create hardcoded id in test class and for best pratics we are never going to use hard coded id in our code, so You need to remove " obj.BMCServiceDesk_FKStatus__c = 'a2924000000RkGyAAK'; " lime from above test class, this will cover 75% of your trigger.
Thanks,
Ajay Dubedi
Mark Wieland (RF Administrator)Mark Wieland (RF Administrator)
Hi Ajay, 

Thanks for replying so quickly, I am in training next couple of days, but will try it friday and let you know. 

Many thanks for the guidence!

kind regards, 

Mark