You need to sign in to do that
Don't have an account?

Trigger Test Help, 1 Line of Code stopping from getting to 100% test coverage
Hi All,
I have written the below trigger to create a Task on the Account record when the field (OneSource__OSKeyID__c) is Null.
This works great (please be gentle as I'm still learning) and I have created a Test Trigger, however, there is one line of code that is stopping me from getting 100% coverage on this trigger.
The one line is this:
setAccount.add(objTask.WhatId);
If someone could help I would be very grateful.
Kev
Trigger
trigger AssignOneSourceTask on Account (after insert) { Set<Id> setAccount = new Set<Id>(); for(Task objTask: [Select Id, WhatId from Task where WhatId In: trigger.new and Subject = 'OSKey ID Missing on Account']) setAccount.add(objTask.WhatId); List<Task> taskList = new List<Task>(); for(integer i=0; i<trigger.new.size(); i++) { if(!setAccount.contains(trigger.new[i].Id)) if (trigger.new[i].OneSource__OSKeyID__c == NULL) { Task t = new Task( Subject = 'OSKey ID Missing on Account', WhatId = trigger.new[i].id, Description = 'Please update OSKey ID on Account Record', Priority = 'Normal', Status = 'Not Started', IsReminderSet = True, ReminderDateTime = System.now()+1, ActivityDate = Date.today()+2, OwnerId = '005E0000000YhNn'); taskList.add(t); setAccount.add(trigger.new[i].Id); } } if(!taskList.isEmpty()) insert taskList; }
Test Trigger
@isTest public with sharing class TriggerTest_Account_OneSourceID { public static testmethod void testAccount_NoOneSourceID() { System.debug('VistageDebug: entering TriggerTest_Account_OneSourceID'); //Create Test Account Account testAccounts = new Account(Name='ACCOUNT_NAME'); Insert testAccounts; List<Task> taskList = [SELECT id, ActivityDate, subject from Task WHERE whatId = :testAccounts.id]; System.assertEquals(1,taskList.size()); System.assertEquals('OSKey ID Missing on Account',taskList[0].Subject); } }
It is impossible for that line to be hit because it is ONLY an insert trigger. This means you haven't had the chance yet to add one to the db. If this is correct then you should simply remove that check. Otherwise make it an update trigger too.
Than also, at the end of your test method add
All Answers
It is impossible for that line to be hit because it is ONLY an insert trigger. This means you haven't had the chance yet to add one to the db. If this is correct then you should simply remove that check. Otherwise make it an update trigger too.
Than also, at the end of your test method add
Thank you - it makes sense now looking at it - I removed the check as I only wanted it to work on "after insert"
Now back to figuring out some other test methods, which hopefully I can do on my own.
Kev