@isTest private class addInitTaskBatchTest { @TestSetup public static void setup(){ OlympusCalendar__c oc = new OlympusCalendar__c(); oc.Date__c = System.Today(); oc.Before_1_WorkDay__c = oc.Date__c.addDays(-1); insert oc; Daily_Report__c dr1 = new Daily_Report__c(); dr1.Reporter__c = UserInfo.getUserId(); dr1.Reported_Date__c = date.today().addDays(-2); dr1.Status__c = '申請中'; Daily_Report__c dr2 = new Daily_Report__c(); dr2.Reporter__c = UserInfo.getUserId(); dr2.Reported_Date__c = date.today().addDays(2); dr2.Status__c = '申請中'; Daily_Report__c dr3 = new Daily_Report__c(); dr3.Reporter__c = UserInfo.getUserId(); dr3.Reported_Date__c = date.today().addDays(4); dr3.Status__c = '申請中'; insert new list{dr1,dr2,dr3}; Event__c event = new Event__c(); event.ActivityDate__c = date.today().addDays(-2); event.Daily_Report__c = dr1.Id; event.StartDateTime__c = Datetime.newInstance(2021, 8, 17, 10, 0, 0); event.EndDateTime__c = Datetime.newInstance(2021, 8, 17, 17, 0, 0); Event__c event2 = new Event__c(); event2.ActivityDate__c = date.today().addDays(-2); event2.Daily_Report__c = dr1.Id; event2.StartDateTime__c = Datetime.newInstance(2021, 8, 17, 10, 0, 0); event2.EndDateTime__c = Datetime.newInstance(2021, 8, 17, 17, 0, 0); Event__c event3 = new Event__c(); event3.ActivityDate__c = date.today().addDays(-2); event3.Daily_Report__c = dr2.Id; event3.StartDateTime__c = Datetime.newInstance(2021, 8, 17, 10, 0, 0); event3.EndDateTime__c = Datetime.newInstance(2021, 8, 17, 17, 0, 0); Event__c event4 = new Event__c(); event4.ActivityDate__c = date.today().addDays(-2); event4.Daily_Report__c = dr3.Id; event4.StartDateTime__c = Datetime.newInstance(2021, 8, 20, 10, 0, 0); event4.EndDateTime__c = Datetime.newInstance(2021, 8, 21, 17, 0, 0); insert new list{event,event2,event3,event4}; List tasks = new List(); task__c t1 = new task__c(); t1.Name = 'test1'; t1.taskDifferent__c = '主动任务'; t1.taskStatus__c = '02 接受'; t1.assignee__c = Userinfo.getUserId(); t1.Event__c = event.Id; t1.Daily_Report__c = dr1.Id; t1.Activity_Date__c = Date.newInstance(2021, 7, 17); tasks.add(t1); task__c t2 = new task__c(); t2.Name = 'test2'; t2.taskDifferent__c = '主动任务'; t2.taskStatus__c = '02 接受'; t2.assignee__c = Userinfo.getUserId(); t2.Event__c = event2.Id; t2.Daily_Report__c = dr2.Id; t2.Activity_Date__c = Date.newInstance(2021, 8, 17); tasks.add(t2); task__c t3 = new task__c(); t3.Name = 'test3'; t3.taskDifferent__c = '主动任务'; t3.taskStatus__c = '02 接受'; t3.assignee__c = Userinfo.getUserId(); t3.Daily_Report__c = dr3.Id; t3.Event__c = event4.Id; t3.Activity_Date__c = Date.newInstance(2021, 8, 20); tasks.add(t3); insert tasks; t1.delayTask__c = t2.id; t2.delayTask__c = t3.id; t2.delayTaskP__c = t1.id; t3.delayTaskP__c = t2.id; update new list {t1,t2,t3}; } @isTest public static void testMethod1() { list tlist = [SELECT Id,Name,delayTask__c, Daily_Report__c , Event__c FROM task__c where name = 'test2']; Test.StartTest(); Database.executeBatch( new addInitTaskBatch(tlist[0].id),1); Test.stopTest(); } @isTest public static void testMethod2() { list tlist = [SELECT Id,Name,delayTask__c, Daily_Report__c , Event__c ,delayTaskP__c FROM task__c where name = 'test2']; addInitTaskBatch controller = new addInitTaskBatch(); controller.main( tlist); Test.StartTest(); Database.executeBatch( new modifyInitTaskBatch(tlist[0].id),1); Test.stopTest(); } }