@isTest public class NotifyBatchTest { @isTest static void testNotifyBatch() { // Create test data for ProcessInstance records List testProcessInstances = new List(); for (Integer i = 0; i < 200; i++) { // Creating more than 100 records to test batch size ProcessInstance pi = new ProcessInstance(Status = 'Pending'); testProcessInstances.add(pi); } insert testProcessInstances; Test.startTest(); // Schedule the batch class String jobId = System.schedule('Test NotifyBatch', '0 0 0 15 3 ? 2022', new NotifyBatch()); Test.stopTest(); // Verify that the batch job has processed the records // You can add your own assertions here based on your batch logic // Query ProcessInstanceWorkitem records or assert other expected behavior // Example: Query ProcessInstanceWorkitem records List workitems = [ SELECT Id FROM ProcessInstanceWorkitem WHERE ProcessInstanceId IN :testProcessInstances ]; // Add your assertions here to verify the expected behavior of the batch job System.assertEquals(testProcessInstances.size(), workitems.size()); // Clean up the test data delete testProcessInstances; // Optionally, you can assert other aspects of the batch job's behavior // For example, you can check the contents of the email messages sent, etc. } }